0

我在清理 ajax.php 中的数据时遇到了困难。这是我的 js.js 的代码:

$('.vote_pagelink').click(function() {
var aid = this.id;

$.ajax({
       type: "POST",
       url: 'http://localhost/lr/ajax.php',
       data: "voteid=" + aid + "&tid=" + config.topic_id,  
             success: function(data){
             var test= data;
             alert( "Data Saved: " + test);
          },
                      error: function(data){
              alert( "error: ");
       }               
     });
return false;
});

和我的 ajax.php:

$post = $_POST;
if ( ctype_digit(json_encode($post['tid']))) {                              
echo json_encode($post['tid']);
}

为什么这行不通?是否有任何“隐藏”数据?如果我删除 if 条件,它只会提示一个数字。

4

2 回答 2

2

删除“json_encode”后尝试-

因为编码后它不是数字所以它会返回false;

$post = $_POST;
if ( ctype_digit($post['tid'])) {
echo json_encode($post['tid']);
}
于 2013-01-10T16:17:08.243 回答
0

ctype_digit函数检查字符串中的 所有字符是否都是数字。当您对一个值进行json_encode时,它​​会返回该值的 json 表示。例如:

$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
//produces the output
 {"a":1,"b":2,"c":3,"d":4,"e":5}

所以你不能真正在 json_encoded 表示上使用 ctype_digit 。相反,您的代码应采用以下形式:

ctype_digit($post['tid'])
于 2013-01-10T16:39:47.107 回答