【问题标题】:Blank result in Ajax PHPAjax PHP 中的空白结果
【发布时间】:2016-08-22 00:24:01
【问题描述】:

每次我执行 Ajax 请求时,我希望服务器检查数字是 1、3 还是 5,并根据结果回显答案。问题是,我的alert(); 中没有data。这是我的代码:

ajax:

ajaxNumber= $.ajax({
            url: "operations.php",
            type: "post",
            data: ile,
            success: function(data){alert(data);}
        });

PHP:

if(isset($_POST['ile'])) {
  $numer = intval($_POST['ile']);
  if($numer==1|$numer==3|$numer==5) {
  echo "ok";
 } else {
  echo "ERROR";
 }
}

alert(); 正在显示,但它只是空的。

编辑:我自己运行 operations.php 并给 $_POST['ile'] 一个现有的值,我得到了很好的回应。

【问题讨论】:

  • ile 的值是多少?
  • @KevinYan 一个号码。它可以是 1、3 或 5。这个 ajax 是函数的一部分,以 function downBy(ile) { 开头
  • 不,你不能从字面上传递 1、3、5 并通过$_POST['ile']@Kajcioch 将它们放入 php 中
  • @KevinYan 哦。为什么?
  • 看这里,if($numer==1|$numer==3|$numer==5) {, | 是按位或,|| 是逻辑或。

标签: javascript php ajax


【解决方案1】:

你没有设置 ile 名字所以 $_POST['ile'] 是空的,试试这个:

ajaxNumber= $.ajax({
        url: "operations.php",
        type: "post",
        data: {'ile':ile},
        success: function(data){alert(data);}
    });

【讨论】:

  • 哦,现在我明白我的错误了。我定义了ile,但我没有给它任何价值。感谢您为我解决这个问题!
  • @Kajcioch 欢迎您,请您将其标记为真实答案
  • 我总是这样,我只需要等几分钟。 @阿里
【解决方案2】:

基本上你不能通过字面意义上的值为 1、3 或 5 的 ile

如下更改您的代码:

var ile = 1;// just a example so I assign 1 to variable `ile`
var postData = {'ile': ile};
$.ajax({
    url: "operations.php",
    type: "post",
    data: postData,
    success: function(response){
       alert(response);
    }
});

JQuery 文档说数据是

要发送到服务器的数据。它被转换为查询字符串。

类型:PlainObject 或字符串或数组

这就是为什么你不能直接发送 1、3 或 5,它应该是像 {name1: value, name2: value2} 这样的对象或像 'name1=value1&name2=value2' 这样的查询字符串

编辑

查看您的 php 代码,在 if 条件下请使用逻辑 OR || 就像其他人在评论中所说的那样。

【讨论】:

    猜你喜欢
    • 2013-08-06
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多