gpt4 book ai didi

php - 使用 ajax 调用时,MySQL 查询数组不会被填充

转载 作者:行者123 更新时间:2023-11-30 23:09:23 26 4
gpt4 key购买 nike

我正在使用 ajax 返回 WordPress 站点上的 sql 查询结果。基本上,有两个查询,我正在显示第二个查询的结果。第一个查询获取包含特定自定义字段的帖子列表。第二个查询查看这些帖子并列出具有与之关联的另一个自定义字段的帖子。现在,如果我不使用 ajax 并将其添加到我的页面模板中,一切正常。

<?php
$post_ids = $wpdb->get_col( "SELECT DISTINCT post_id FROM $wpdb->postmeta WHERE meta_key = 'Make' AND meta_value='Chevrolet'" );
// now get the food names
$stocktypes = $wpdb->get_col( "SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = 'Model' AND post_id IN (". implode(',', array_map('absint', $post_ids) ) .")" );


if ($stocktypes) {
foreach ($stocktypes as $stocktype) {
echo "<option value=\"" . $stocktype . "\">" . $stocktype . "</option>";
}
}
?>

当我将它添加到一个单独的文件并使用 ajax 调用它时,问题就来了。这是我的 ajax 文件的内容:

<?php

$models = $_GET['Make'];

$post_ids = $wpdb->get_col( "SELECT DISTINCT post_id FROM $wpdb->postmeta WHERE meta_key = 'Make' AND meta_value= %s", $models );

$stocktypes = $wpdb->get_col( "SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = 'Model' AND post_id IN (". implode(',', array_map('absint', $post_ids) ) .")" );


if ($stocktypes) {
foreach ($stocktypes as $stocktype) {
echo "<option value=\"" . $stocktype . "\">" . $stocktype . "</option>";
}
}
?>

这是我的 ajax 调用:

 <script>
$(document).ready(function(){
$("#make").change(function() {
$.ajax({
url: "<?php bloginfo('template_url'); ?>/getModel.php",
data: { Make: $(this).val() },
dataType: "html",
type: "GET",
success: function(data){
$("#model").html(data);
}

});
});
});
</script>

ajax 调用工作正常,因为我可以回显 $models = $_GET['Make']; 的结果

通过使用 print_r(array_values($post_ids));,我发现第一个查询的 $post_ids 数组没有填充到我的 ajax 文件中。我唯一能想到的是 wp-load.php(允许使用 WordPress 函数)没有被加载,但这不是问题所在。

最佳答案

问题出在第一个查询中。当我使用 meta_value= %s 时,我应该一直使用 meta_value= $models

此外,正如 Kevin B 所指出的,我在我的 ajax 调用中添加了 type: "GET"

关于php - 使用 ajax 调用时,MySQL 查询数组不会被填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20525811/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com