gpt4 book ai didi

javascript - 使用 AJAX 将数据从 PHP 返回到 JavaScript - 数据类型错误?

转载 作者:可可西里 更新时间:2023-11-01 08:38:53 26 4
gpt4 key购买 nike

我正在使用 AJAX 将查询返回到我的 JavaScript 函数,但我在返回 json_encode 时遇到了问题。我可能在某处的数据类型中有错误,但想在这里查看一些建议。

这是我的 AJAX 请求:

$.ajax({
url: 'testajax.php',
method: 'POST',
data: {value},
dataType:'json',
success: function(data){
console.log(data);}
});

这是我的 PHP 脚本:

<?php
require 'login.php';
$connection = new mysqli($host, $user, $pword, $database, 3306);
$insertquery = $connection->prepare("SELECT tracking_type, tracking_change_date, vessel_fcm_new, vessel_hull_id_new, vessel_name_new, vessel_length_new, vessel_manufacturer_new, vessel_manufacturer_id_new, vessel_year_new, vessel_value_new, owner_id_new, loss_payee_id_new, policy_id_new, policy_start_date_new, policy_end_date_new FROM tracking WHERE tracking_type = ?");
$insertquery->bind_param("i", $trackingtype);
//$trackingtype = $_POST['value'];
$trackingtype = 1;
$insertquery->execute();
$insertquery->bind_result($tracking_type, $tracking_change_date, $vessel_fcm_new, $vessel_hull_id_new, $vessel_name_new, $vessel_length_new, $vessel_manufacturer_new, $vessel_manufacturer_id_new, $vessel_year_new, $vessel_value_new, $owner_id_new, $loss_payee_id_new, $policy_id_new, $policy_start_date_new, $policy_end_date_new);
while ($insertquery->fetch()){
$data = array($tracking_type, $tracking_change_date, $vessel_fcm_new, $vessel_hull_id_new, $vessel_name_new, $vessel_length_new, $vessel_manufacturer_new, $vessel_manufacturer_id_new, $vessel_year_new, $vessel_value_new, $owner_id_new, $loss_payee_id_new, $policy_id_new, $policy_start_date_new, $policy_end_date_new);
echo json_encode($data);
}

如果我只有 1 行匹配这个查询,那么它工作正常。但是一旦我添加另一行与选择查询匹配,它就不会正确返回到 JavaScript 函数,但在浏览器中显示正常(如果您访问 testajax.php)。

这是当前返回数据的方式。也许我使用的数据类型有误:

["Insert","2018-05-26","JBL5693",null,"Makers Mark","22","sdgfsg3","256632asdasd",2014,263,"217","11",null,null,null]["Insert","2018-05-27","fFH465","FDDEE453","GIIGE","22","Shippers","2432465we",2014,205222,"Smith Jones","Capital One",null,null,null]

最佳答案

这个位可能给了你一个线索如果我只有 1 行匹配这个查询,那么它工作正常

所以将你的行保存在一个数组中,然后像这样发送整个数组

while ($insertquery->fetch()){
$data[] = array($tracking_type, $tracking_change_date, $vessel_fcm_new,
$vessel_hull_id_new, $vessel_name_new, $vessel_length_new,
$vessel_manufacturer_new, $vessel_manufacturer_id_new,
$vessel_year_new, $vessel_value_new, $owner_id_new,
$loss_payee_id_new, $policy_id_new, $policy_start_date_new,
$policy_end_date_new);
}
echo json_encode($data);

编辑:

此代码的简单测试是

$data[] = array('Insert','2018-05-26', 1);
$data[] = array('Insert','2018-05-26', 2);

echo json_encode($data);

这将产生

[
["Insert","2018-05-26",1],
["Insert","2018-05-26",2]
]

而不是您建议的示例输出。

关于javascript - 使用 AJAX 将数据从 PHP 返回到 JavaScript - 数据类型错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50555718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com