echo json_encode($data);
在循环中它会产生问题..将它保存在一个数组中然后在循环后回显整个数组<script>
这不是一个好主意.. 好的方法是将错误作为编码 json 返回,然后在 ajax 成功函数上检查它-First 我们假设您的 php 代码和 mysql 连接工作正常..
-Second 在你的ajax中你需要添加
dataType : "json"
..
-第三您还需要检查
isset($_POST['message'])
而不是isset($_POST['submit'])
function start_sendig() {
$("#responce").html("Please wait sending on process");
var message = $("#message").val();
var path_uri = "sms/send_sms.php";
$.ajax({
type: "POST",
url: path_uri,
dataType : "json", // <<<<<<<<<<<<<<<
data: {
message: message,
},
success: function (data) {
if(data.error){ // <<<<<<<<<<<<<<<
console.log(data.error);
}else{
console.log(data);
}
},
});
}
在 php 中
mysqli_query ($con, "insert into sent_sms (message) values ('$msg_sms')");
if (isset($_POST['message'])){
//select numbers
$result = mysqli_query($con, "SELECT mphone FROM members");
$returned_JSON = []; //<<<<<<<<<<<<<<<<<<<<<<<
while ($row = mysqli_fetch_array($result)){
$numbers = $row['mphone'];
foreach (explode("+", $numbers) as $phone) {
$basic = new \Vonage\Client\Credentials\Basic("fxxxxx", "xxxxxxxxxxxxx");
$client = new \Vonage\Client($basic);
$response = $client->sms()->send(
new \Vonage\SMS\Message\SMS($phone, 'Hotel', $msg_sms)
);
$message = $response->current();
if ($message->getStatus() == 0) {
$data = array(
"response" => "success",
"current" => '+' . $phone
);
$returned_JSON[] = $data; //<<<<<<<<<<<<<<<<<<<<<<<
} else {
$returned_JSON['error'] = $message->getStatus(); //<<<<<<<<<
}
}
}
echo json_encode($returned_JSON); //<<<<<<<<<<<<<<<<<<<<<
}
?>
注意: 在使用 ajax 时有很多原因会出错。我给了你一些代码作为指导,让你知道如何思考和编码它。但是你必须检查 ajax/php逐步连接以确切知道什么有效,什么无效。