PHP没有拿起Ajax POST

时间:2016-02-04 20:42:12

标签: php jquery ajax

我正在尝试将一些数据从HTML页面发送到PHP页面。

我确保dataString实际上是使用控制台日志发送文本。

显示为pid=12345

我的AJAX是:

$.ajax({
  type: "POST",
  url: 'Task2.php',
    data: {pid:res[1]},
  success: function(data) {
    //alert(data);
      $("#container").html(data); 
      console.log( data );
 }
});

我的PHP是:

$temp = $_POST['pid'];

即使我手动转到myserver/Task2.php?pid=12345,PHP也没有把它拿起来。

3 个答案:

答案 0 :(得分:1)

我想你可能正在寻找这样的东西......

var dataString = res[1];
console.log( 'pid=' + dataString );

$.ajax({
  type: "POST",
  url: 'Task2.php',
  data: { pid: dataString },
  success: function(data) {
    alert(data);
  }
});

通过在ajax调用中指定数据:{pid:dataString},告诉它将dataString值作为名为" pid"的表单元素进行POST。您可以使用$ _POST [' pid'];

来接收PHP端

修改

这是一个完整的,有效的例子。所有自包含在一个PHP文件中。应该帮助你解决它。在顶部使用isset($ _ GET [' testing'])的原因是因为我也在ajax调用中使用相同的文件。只是fyi ...

<?php
    if (isset($_GET['testing'])) {
        if (isset($_POST['pid'])) {
            echo $_POST['pid'];
        } else {
            echo 'not set';
        }
    }
    else
    {
?>
<html>
<script src="http://code.jquery.com/jquery-1.12.0.min.js"></script>
<a href="javascript:void(0);" onclick="test()">test</a>
<script type="text/javascript">
    function test() {
        var dataString = "pid=testing123";
        $.ajax({
            type: "POST",
            url: "test.php?testing",
            data: dataString,
            success: function(result) {
                alert(result);
            }
        });
    }
</script>
</html>
<?php
    }
    ?>

答案 1 :(得分:0)

var data = {pid: res[1]}

$.ajax({
  type: "POST",
  url: 'Task2.php',
    data: data,
  success: function(data) {
    alert(data);
  }
});

使用$_POST参数(?pid = 12345)时,您无法阅读$_GET

答案 2 :(得分:0)

数据应该是哈希:

$.ajax({
  type: "POST",
  url: 'Task2.php',
    data: {pid:res[1]},,
  success: function(data) {
    alert(data);
  }
});

在PHP中不要将$ _GET与$ _POST混合使用。 http://example.com/a.php?q=1 =&gt; $ _GET ['q'],但上面的ajax代码会将它发送到$ _POST ['pid']