我有一个从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);*/
}
这个代码不起作用,你能帮我吗
您的代码中存在多个问题
首先像这样更改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中经过的路线正确指向控制器的这个功能。