我不确定如何在PHP脚本中使用与ajax调用一起传递的数据。 具体来说,这是ajax调用的代码:
if (node_selected!=0 & node_selected!=null){
$.ajax({
type: "POST",
url: "php/fetch_sensors.php",
data: node_selected,
dataType:'json',
success: function( options ){
...
}
});
}
' node_selected'是一个整数变量。
这是PHP脚本(fetch_sensors.php):
$query = "SELECT SensorID,Variable FROM sensors WHERE SensorID IN (SELECT SensorID FROM nodesensors WHERE NodeID=node_selected)";
$result = mysql_query($query, $con) or die('query not made');
while ($row = mysql_fetch_assoc($result)) {
$sensors[] = $row;
}
echo json_encode($sensors);
如果我更换了NodeID = node_selected'使用' NodeID = 2' (2只是一个例子)一切正常。所以,我认为我没有正确使用' node_selected'。 有什么想法吗?
非常感谢!
答案 0 :(得分:3)
if (node_selected!=0 && node_selected!=null){
$.ajax({
type: "POST",
url: "php/fetch_sensors.php",
data: {myNode: node_selected}, //like this
dataType:'json',
success: function( options ){
...
}
});
}
$myNode = mysql_escape_string($_POST["myNode"]);
$query = "SELECT SensorID,Variable FROM sensors WHERE SensorID IN ";
$query.= "(SELECT SensorID FROM nodesensors WHERE NodeID= '".$myNode."')";
$result = mysql_query($query, $con) or die('query not made');
while ($row = mysql_fetch_assoc($result)) {
$sensors[] = $row;
}
echo json_encode($sensors);
答案 1 :(得分:3)
您必须发送一个键/值对。您只发送一个值。
如果你想在php中接收$_POST['NodeID']
,那么jQuery AJAX中最简单的方法是使用相同的密钥创建一个对象
$.ajax({
type: "POST",
url: "php/fetch_sensors.php",
data: {
NodeID: node_selected
},
dataType: 'json',
success: function (options) {...
}
});
最简单的方法是将对象键与在表单控件中使用name
相同。服务器上大多数ajax的处理与表单处理相同
答案 2 :(得分:1)
为您的数据提供密钥,因此您可以通过$_POST
global:
//js
data: {node_selected: node_selected},
//php
$query = "SELECT SensorID,Variable FROM sensors WHERE SensorID IN (SELECT SensorID FROM nodesensors WHERE NodeID=" . $_POST['node_selected'] . ")";