【发布时间】:2017-03-12 20:13:46
【问题描述】:
这是我的 Ajax POST 请求:
function getRelated() {
var elements = (document.getElementsByClassName('escashare'));
var query = [];
for(var i=0;typeof(elements[i])!='undefined';query.push(elements[i++].getAttribute('data-id')));
$.ajax({
type: "POST",
url: baseUrl+"/requests/get_related.php",
data: "query="+query+'&_token='+_token,
cache: false,
success: function(html){
$('#main-content').append(html);
}
});
}
所以基本上我POST 是一个int 的数组,例如:
["326", "311", "312", "313", "314", "316", "317", "318", "319", "15", "9", "87"]
当在我的 PHP I implode query 数组中它给了我 NULL 但为什么呢?
$newQuery = implode(',', $QueryFromPost);
var_dump($newQuery); //NULL
编辑
我需要将它用于:
$query = $this->db->query(sprintf("SELECT * FROM `posts` WHERE `id` IN ('%s')", $newQuery));
while($result = $query->fetch_assoc()) {
$rows[] = $result;
}
if(!empty($rows)) {
foreach($rows as $row) {
$output .= '<div class="stage">'.$row['id'].'</div>';
}
}
return $output;
【问题讨论】:
-
var_dump($QueryFromPost) -
将您的
query对象转换为字符串,然后在您的 PHP 中尝试回显$QueryFromPost并检查您得到的结果。 -
@u_mulder 给了我
[Object object] -
@NineCattoRules 使用
query.join(',')将其转换为单个字符串。 -
@NineCattoRules 您需要从字符串中删除引号才能将其用于 mysql 查询。引号可能与您的查询冲突。尝试形成一个正确的查询,然后在你的 mysql 代码中运行它来检查它的有效性。