使用PHP和Ajax的MySQL查询
我有两张桌子,tbl_类,tbl_食品。我使用的是Cordova,所以我使用了一个html文件,一个remote.php文件,我想从tbl_食品中选择所有,其中类别ID可以是1、2或3 我对php文件使用以下代码:使用PHP和Ajax的MySQL查询,php,jquery,mysql,ajax,cordova,Php,Jquery,Mysql,Ajax,Cordova,我有两张桌子,tbl_类,tbl_食品。我使用的是Cordova,所以我使用了一个html文件,一个remote.php文件,我想从tbl_食品中选择所有,其中类别ID可以是1、2或3 我对php文件使用以下代码: <?php include "db.php"; if(isset($_POST['check'])) { $ID=$_POST['ID']; $data=array(); $q=mysql_query("select * from `tbl_foo
<?php
include "db.php";
if(isset($_POST['check']))
{
$ID=$_POST['ID'];
$data=array();
$q=mysql_query("select * from `tbl_food` WHERE Cat='$ID'");
while ($row=mysql_fetch_assoc($q)){
$data[]=$row;
echo json_encode($data);
}
}
?>
这是我在HTML文件中使用的ajax代码,一旦我从下拉列表中选择类别,就会调用该函数:
function getFoodList() {
var ID = $('#foodcat :selected').val();
var dataString = "&ID=" + ID + "&check=";
$.ajax({
type: "POST",
url: "http://myurl.com/load_list.php",
data: dataString,
dataType: 'json',
crossDomain: true,
cache: false,
success: function (data) {
var result=$.parseJSON(data);
$.each(result, function (index, val) {
$("#foodlist").append($('<option></option>').val(val.Points).html(val.Name) + " - " + val.Quantity);
});
}
});
}
问题是它永远不会到达success函数:这意味着如果我没有错的话,php不会返回任何内容。1从php v5.5.0开始,整个ext/mysql php扩展(提供了所有以前缀mysql_命名的函数)已被正式弃用,并将从php 7中删除。请不要使用它。你可以使用PDO或mysqli_3; 2不要写直接查询,使用准备。直接查询导致sql注入 请参阅: 3现在您的实际问题是ajax。您正在ajax中使用POST方法,并将数据作为查询字符串发送 请尝试以下代码: JS功能:
function getFoodList() {
var catid = $('#foodcat :selected').val();
$.ajax({
type: "POST",
url: "http://myurl.com/load_list.php",
data: {ID:catid,check:"SOME_VALUE"},
dataType: 'json',
crossDomain: true,
cache: false,
success: function (data) {
var result=$.parseJSON(data);
$.each(result, function (index, val) {
$("#foodlist").append($('<option></option>').val(val.Points).html(val.Name) + " - " + val.Quantity);
});
}
});
}
PHP代码:
<?php
include "db.php";
if(isset($_POST['check']))
{
$ID=$_POST['ID'];
$data=array();
$q=mysql_query("select * from `tbl_food` WHERE Cat='$ID'");
while ($row=mysql_fetch_assoc($q)){
$data[]=$row;
}
echo json_encode($data); //this needs to be placed outside the loop.
}
?>
请已在PHP7中删除。了解使用PDO的语句,并考虑使用PDO。您在浏览器的开发工具中查看请求/响应吗?在PHP侧打印时会给出什么?