我正在尝试获取 JSON 数据成功响应,但出现错误

问题描述 投票:0回答:1
javascript php jquery json ajax
1个回答
0
投票
  • 回声
    echo json_encode($data);
    在循环中它会产生问题..将它保存在一个数组中然后在循环后回显整个数组
  • return
    <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逐步连接以确切知道什么有效,什么无效。

© www.soinside.com 2019 - 2024. All rights reserved.