繁体   English   中英

jQuery AJAX POST到PHP的问题

[英]jQuery AJAX POST to PHP issue

我正在尝试评估id的值,该值应在POST中从jQuery传递到PHP。

调用返回{'id':'99'} ,如果id不等于0是可以的。我想知道为什么($x == "0")在我的PHP函数中没有被评估为true

任何帮助将不胜感激! 提前致谢。

jQuery的:

$( document ).ready(function() {
    $.ajax({
        url: '/more.php',
        type: 'POST',
        data: JSON.stringify({"id" : "0"}),
        success: function(data) {
            $("body").append(data);
        }
    });
});

PHP:

if (isset($_POST['id'])) {
        $con=mysqli_connect("localhost","user","pass","schema");
        getmore($_POST['id']);

        function getmore($x) {
         if ($x == "0") {
          $sqldata = mysqli_query($con,"SELECT * FROM IRCLOG WHERE DATETIME >= date_sub(curdate(),interval 1 day)");
         }
         else {
          $sqldata = mysqli_query($con,"SELECT * FROM IRCLOG WHERE DATETIME >= date_sub(curdate(),interval 1 day)");
         }
           // your business logic
          $rows = array();
          while($r = mysqli_fetch_array($sqldata)) {
             $rows[] = $r;
          }

          echo json_encode($rows);
        }
    }
else {echo "{'id':'99'}";}

我认为这可能是因为PHP将$_POST['id']为整数。 请尝试以下操作:

function getmore($x) {
    $x = intval( $x );
    if ($x == 0) {

另一个原因可能是您的AJAX发送数据不正确。 尝试使用:

data: {id : "0"}

在AJAX请求中。

AJAX调用中的data设置接受PlainObjectString参数。 从文档:

如果还不是字符串,则将其转换为查询字符串。 它被附加到GET请求的URL上。 请参阅processData选项以防止这种自动处理。 对象必须是键/值对。 如果value是一个Array,则jQuery会根据传统设置(如下所述)的值,使用相同的键序列化多个值。

你为什么不使用

$(document).ready( function() {
    var id_main = 0;
        $.ajax ({
            type: "POST",
            url: "/more.php",
            data: { id: id_main },
    });
});

这样发送您的数据。 数据:{“ id”:“ 0”},

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM