如何在php脚本中使用ajax传递的数据?

时间:2014-10-22 14:12:09

标签: php jquery ajax

我不确定如何在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'。 有什么想法吗?

非常感谢!

3 个答案:

答案 0 :(得分:3)

Jquery的:

 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 ){
                    ...
                }
            });
  }

PHP:

$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:

获取php
//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'] . ")";