php中的Ajax数据,清理一个数字

时间:2013-01-10 16:12:58

标签: php json jquery

我难以在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条件,它只会提醒一个数字。

2 个答案:

答案 0 :(得分:2)

删除“json_encode” -

后再尝试

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

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

答案 1 :(得分: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'])