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