当前位置: 首页 > 知识库问答 >
问题:

如何向laravel控制器公共函数发送ajax请求

邢小云
2023-03-14

我有一个从laravel控制器加载数据的页面,有一个按钮可以调用jquery函数,

按钮值中有一个电话号码,所以我需要发送短信给那个号码,

这里我附上了我使用的代码,

短信网关功能齐全,出于安全考虑,我删除个人数据,

链接

<i><a class="btn btn-info" id="Confirm2" value="{{$padd->ContactNum02}}">Confirm</a></i>

JQ代码

<script type="text/javascript">
$(document).ready(function(){

  $("#Confirm2").click(function(){
    $("#ConfirmNo02input").show();
    $("#Confirm2").hide();

    OTPSend();
    var PhoneNum = $("#Confirm2").val();
    function OTPSend( PhoneNum) {
            
        $.ajax({
        url: 'OTP_send',
        type: 'POST',
        datatype:'json',
        data:{SearchKey:PhoneNum},
            })
            .done(function(data) {
                alert("run")
                console.log("run");
            })    
            .fail(function() {
                alert("fail")
                console.log("error");
            })
                }
    });
});
</script>

路线

Route::post('/OTP_send', 'ServicesController@OTP' )->name('OTP_send');

控制器文件

   public function OTP(Services $services)
    {
         
        $testNum='0753505625';
        $api_instance = new SmsApi();
        $user_id = "xxxxx";
        $api_key = "xxxxxxxxxxxxxxx";
        $message = "test SMS";
        $PhoneNo=ltrim( $testNum , "0");
        $to ="94".$PhoneNo;
        $sender_id = "NotifyDEMO";
        try {
            $api_instance->sendSMS($user_id, $api_key, $message, $to, $sender_id);
            } catch (Exception $e) {
            echo 'Exception when calling SmsApi->sendSMS: ', $e->getMessage(), PHP_EOL;
            } 
        return response()->json(['message' => 'successfull'],200);*/

    }

这个代码不起作用,你能帮我吗

共有1个答案

邓兴为
2023-03-14

您的代码中存在多个问题
首先像这样更改HTML,您需要的是按钮而不是链接。

<i><button class="btn btn-info" id="Confirm2" value="{{$padd->ContactNum02}}">Confirm</button></i>

将您的Javascript更改为这个

$(document).ready(function(){
  $(document).on('click','#Confirm2',function(e){
    e.preventDefault();
    $("#ConfirmNo02input").show();
    $("#Confirm2").hide();
    $.ajax({
        url: 'OTP_send', // URL for the function
        method:"POST",
        data:{
            phone:$("#Confirm2").val()
        },
        success:function(result){
            if(result.status == 'success'){
                alert('ran');
            }
            else{
                alert('failure');
            }
        }
    });
});

最后把你的控制器换成这个。

public function OTP(Request $request){
    $testNum='0753505625';
    // use this to send the text on number coming from the button
    // $testNum = $request->phone; 
    $api_instance = new SmsApi();
    $user_id = "xxxxx";
    $api_key = "xxxxxxxxxxxxxxx";
    $message = "test SMS";
    $PhoneNo=ltrim( $testNum , "0");
    $to ="94".$PhoneNo;
    $sender_id = "NotifyDEMO";
    try{
        $api_instance->sendSMS($user_id, $api_key, $message, $to, $sender_id);
        $response['status'] = 'success';
    }
    catch(Exception $e) {
        echo 'Exception when calling SmsApi->sendSMS: ', $e->getMessage(), PHP_EOL;
    } 
    return $response;
}

最后,确保你在ajax中经过的路线正确指向控制器的这个功能。

 类似资料:
  • 单击下面我调用的ajax函数代码按钮继续预订 路线 控制器

  • XMLHttpRequest 对象用于和服务器交换数据。 向服务器发送请求 如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:xmlhttp.open("GET","ajax_info.txt",true); xmlhttp.send(); 方法 描述 open(method,url,async) 规定请求的类型、URL 以及是否异步处理

  • 我正在尝试有一个切换按钮(复选框)更改我的MySQL数据库中的一些数据。我本质上想有一个很好的管理站点,在其中我可以解锁用户到网站上的某些功能与一个很好的开/关开关。 一切似乎都设置正确,但我的控制器根本没有反应或被触发。 现在,我的视图中有一个工作切换按钮触发了一个javascript函数。在该javascript函数中,我已经设置了要传输到控制器的数据。 我还在JavaScript中设置了Aj

  • 问题内容: 我发送这样的短信 html标记 JavaScript代码 symfony2控制器代码 但为空… 我已经尝试通过Firefox HTTP请求测试器进行普通的发布请求(不是Ajax)。 控制器工作并具有价值。 所以我认为php代码还可以,但是Ajax方面存在问题 成功地调用’success:function’。 您如何获取javascript数据结构的内容? 问题答案: 首先,您无需访问控

  • 问题内容: 我正在通过ajax将数据发送到我的控制器 在我正在使用的控制器中 我什么也没得到。我也试过说。如何获取ID值? 也返回假。 问题答案: 问题在于您将应用程序内容设置为json,而无需设置内容。 jQuery Ajax contentType(预设值:’application / x-www-form-urlencoded; charset = UTF-8’) 希望能有所帮助。您的aja

  • 我可以像这样在每个视图中访问一个函数。 在我的AppService提供代码 如何在每个控制器中访问它? 在每个控制器中调用函数的最佳方式是什么,因为我需要确保来自数据库的最新记录。

  • 我在使用Ajax向控制器发送json数据时遇到问题。

  • 我试图通过AJAX向Spring控制器发送JSON对象,但收到错误415: 下面是我的javascript调用- 这里是我的依赖项杰克逊相关的依赖项在我的POM- 讽刺的是,当我试着穿Spring靴的时候,它就起作用了。