gpt4 book ai didi

php - 尝试将SQL语句生成的JSON数据从PHP脚本返回到JS网页,却得到null

转载 作者:行者123 更新时间:2023-11-29 20:09:22 25 4
gpt4 key购买 nike

我想在按下 提交 按钮时从 PHP 脚本中的结果 SQL 语句返回 JSON 数据,但我收到的是 null

我将使用返回的 JSON 来过滤显示我的 Google map 上的标记,但现在我只想将数据从 PHP 脚本返回到我的 jQuery 页面,以便我可以操作/使用它.

提交按钮:

HTML

<input type="submit" id="filter" value="Filter" />

JS

$('#myform').on('submit', function(e) {
e.preventDefault();
var myData = $('#myform').serializeArray();
$.getJSON('myscript.php', myData, function(json){
alert(json);// actually filter for later
});
});

PHP 脚本:

// action is a hidden form control I use to check if form was submitted
if(isset($_POST["action"])){

if(isset($_POST["color"]) && isset($_POST["zipcode"])){
// try to open a connection to a MySQL server
$connection = mysql_connect($host, $username, $password) or die("Could not connect" . mysql_error());
// select the active MySQL database to work with
$db_selected = mysql_select_db($database, $connection) or die("Can\'t use db:" . mysql_error());

$query = 'sql statement to return resutls based on what color and zipcode was provided';
$result = mysql_query($query) or die("Can\'t do that: " . mysql_error());
}

// close connection to the database


echo json_encode($result);
mysql_close($connection);
}

最佳答案

您不能直接返回 mysql_query 调用的结果对象。您首先必须使用 mysql_fetch_array 或类似函数 (PHP docu) 来解析它。

...
$result = mysql_query($query);
if ( $result === false ) {
die("Can\'t do that: " . mysql_error());
}

$retVal = array();
while( $row = mysql_fetch_array( $result ) ) {
$retVal[] = $row;
}

...
echo json_encode( $retVal );

编辑

根据 getJSON ( link ) 的 jQuery 规范,数据是使用 GET 参数发送的,而不是使用 POST。因此,您必须将 PHP 代码中出现的所有 $_POST 更改为 $_GET$_REQUEST

除此之外,如果您的变量未设置,您应该返回一些错误消息。现在(根据您的代码)仅返回一个空文档。

关于php - 尝试将SQL语句生成的JSON数据从PHP脚本返回到JS网页,却得到null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10800811/

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