ajax POST在查询时返回null

时间:2017-05-16 15:46:17

标签: javascript php mysql ajax

我正在尝试将一些数据从JS发送到PHP并发出数据库请求,这可以追溯到我的JS。 问题是,我只得到“null”作为结果。 我检查并仔细检查了我的查询,这非常好。 这里是JS:

var selectedEngin = getSelectedText(enginID);
selectedEngin = selectedEngin.slice(0, -1);
var roleNameList = new Array();
$.ajax({
     url: '/getRoleNames.php',
     type: "POST",
     dataType:'json',
     data: { engin : selectedEngin },
     success: function(data){
         console.info(data);
     }
});

PHP:

include_once ("config.php");

$userAnswer = $_POST['engin']; 
$row = array();

$query="select ROLE_NAME from type_vehicule_role WHERE TV_CODE 
='".$userAnswer."' ORDER BY ROLE_ID" ;
$result=mysqli_query($dbc,$query);
$row=mysqli_fetch_array($result);
echo json_encode($row);

如果我回复“test”而不是$row,那么它的效果也很完美。

希望你能帮助我!谢谢!

度过美好的一天!

3 个答案:

答案 0 :(得分:0)

$ dbc必须包含连接到数据库的参数信息。在您的情况下,$ result为null,因为您的连接导致错误。

答案 1 :(得分:0)

在将其提供给json_encode()电话之前,请尝试使用此功能将所有数据正确编码。

include_once ("config.php");

$userAnswer = $_POST['engin']; 
$row = array();

$query="select ROLE_NAME from type_vehicule_role WHERE TV_CODE 
='".$userAnswer."' ORDER BY ROLE_ID" ;
$result=mysqli_query($dbc,$query);
$row=mysqli_fetch_array($result);

// Walk the array and encode everything in UTF8
$utf8Row = array_map(utf8_encode, $row);
// JSONify the encoded array
echo json_encode($utf8Row);

答案 2 :(得分:0)

感谢BA_Webimax我找到了问题并得到了答案:

问题在于charset。我在PHP中使用mysqli_set_charset($dbc,"utf8");解决了这个问题。

感谢您的帮助! 祝你有愉快的一天!