目前我正在尝试使用 AJAX 将内容添加到我的页面。因为这是我第一次使用 AJAX,所以我不太确定我在做什么。我在这里写了一些代码:
JavaScript:
jQuery(function(){
jQuery("#nearby_customers_link").click(function(){
jQuery.ajax({
url: template_url + "/ajax/test.php",
data: "nearby=" + jQuery(this).data("city"),
success: function(data) {
jQuery(".test").html(data).slideDown();
}
});
});
});
index.php:
echo"<a href=\"#\" data-nearby=\"".$city['city']."\" id=\"customers_link\">Blablablablablablabla</a>";
echo"<div class=\"test\"></div>";
测试.php:
$city = $wpdb->get_results("SELECT * FROM `cities` WHERE `key` = '".esc_sql($_GET['city'])."'", ARRAY_A);
$customers = $wpdb->get_results("SELECT * FROM `customers` WHERE `city` IN('".implode("','", array_map("esc_sql", unserialize($city[0]['nearby'])))."') ORDER BY `company_name` ASC", ARRAY_A);
if(!empty($customers))
{
echo"<div id=\"nearby_customers\">";
echo"<h3>Blablablablabla</h3>";
foreach($customers as $customer)
{
echo city_customer($customer);
}
echo"</div>";
}
echo"</div>";
现在我收到一条错误消息:
警告:array_map():参数 #2 应该是第 7 行 C:\wamp\www\ajax\test.php 中的数组
如何修复此错误?
此外,我不太确定数据字段的含义或用途,并且我在互联网上的任何地方都找不到它。如果有人能解释一下那就太好了!
最佳答案
您的代码似乎有错误。在 test.php 中,您使用变量 $_GET['city']
,但实际上该变量称为 $_GET['nearby']
。尝试修复该问题并查看它是否有效。
关于javascript - 对其他页面的 AJAX 请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39596130/