【发布时间】:2021-05-09 16:10:50
【问题描述】:
我有一个奇怪的问题,我希望你们中的一个可以指导我找到答案。我是 PHP 和 JQuery 的新手,所以我不太确定是什么原因造成的,但本质上,我有一个 ajax 调用,用于自定义搜索字段。 “问题”是在每个搜索结果之后它都会在结果之后返回一个非常随机的“0”。因此,例如,如果我进行搜索,我会得到如下信息:
Stack Overflow 0
我尝试在代码中查看是什么导致了它,但我无法解决它,据我所知,它只是......随机出现在那里。我不介意它出现,如果我有办法对其应用 css 类以便隐藏它。无论如何,这是我的代码:
$args = array(
'role' => 'artist',
'order' => 'ASC',
'orderby' => 'display_name',
'meta_query' => array(
)
);
if (isset($_POST['artistFilter'])){
$name = explode(" ",$_POST['artistFilter']);
$args['meta_query'][] = array(
'key' => 'first_name',
'value' => $name[0],
'compare' => 'LIKE'
);
$args['meta_query'][] = array(
'key' => 'last_name',
'value' => $name[1],
'compare' => 'LIKE'
);
};
if (isset($_POST['mediumType'])){
// WP_User_Query arguments
$args['meta_query'][] = array(
'meta_key' => 'artist_medium',
'value'=> esc_attr($_POST['mediumType']),
'compare' => 'LIKE'
);
};
if (isset($_POST['locationType'])){
$args['meta_query'][] = array(
'meta_key'=>'studio_region_location',
'value' =>$_POST['locationType'],
'compare' => 'LIKE'
);
};
$user_query = new WP_USER_QUERY ($args);
if (! empty($user_query->get_results())){
foreach ($user_query->get_results() as $user){
$artistimage = get_field('primary_image', 'user_' . $user->ID);
echo '<div class="artistSearchColumn">';
if ($artistimage){
echo '<a href="/staging/author/' . esc_html($user->user_login) . '"><img src="' . esc_html($artistimage['url']) . '" alt="Test"/>';
echo '<p>' . $user->first_name. ' ' . $user->last_name .'</p></a>';
}
else {
echo '<a href="/staging/author/' . esc_html($user->user_login) . '">' . esc_attr($user->first_name) . ' ' . esc_attr($user->last_name) . '</a>';
}
echo '</div>';
}
} else {
echo '<h1>No Users Found.</h1>';
}
我的 jquery:
<script>
jQuery(function($){
var ajaxscript = {ajax_url: './staging/wp-admin/admin-ajax.php'}
$('#filter').submit(function(){
var filter = $('#filter');
$.ajax({
url:filter.attr('action'),
data:filter.serialize(), // form data
type:filter.attr('method'), // POST
beforeSend:function(xhr){
filter.find('button').text('Finding Artists...'); // changing the button label
},
success:function(data){
alert(data);
filter.find('button').text('Apply filter'); // changing the button label back
$('#response').html(data); // insert data
}
});
return false;
});
});
</script>
将 $('#response').html(data) 替换为除数据之外的任何内容都不会返回 0,所以我觉得这与此有关。
感谢您的帮助!!!
【问题讨论】:
-
“我会得到类似的东西:” - 这并不能告诉我们太多,因为这只是它被解释为 HTML 后的样子已经。请在浏览器开发工具(网络面板)中查看对您的请求的实际响应,并显示出来。
-
嘿 CBroe,这是同一件事:``` Stack Overflow 0 ```
-
但是您正在那里创建一个完整的 HTML 结构,
<div class="artistSearchColumn">等。这很难只产生纯文本? -
确实如此,很奇怪。这是 jquery 返回的内容:```0 ``` 这很奇怪,哈哈。这是原始响应:```
未找到艺术家。
0 ```