重新加载php页面的一部分而不刷新整个页面
我使用Wordpress作为内容管理系统,我的模板有一个带有重新加载php页面的一部分而不刷新整个页面,php,javascript,ajax,wordpress,Php,Javascript,Ajax,Wordpress,我使用Wordpress作为内容管理系统,我的模板有一个带有boxclass的div,并包含一个下拉列表。我的目标是获取此droplist的值,并使用此值在ajax方法中查询post,然后使用ajax重新加载justboxdiv,以获得更清晰的标记: <select> <option value="1">Item 1</option> <option value="2">Item 2</option>
box
class的div,并包含一个下拉列表。我的目标是获取此droplist的值,并使用此值在ajax方法中查询post,然后使用ajax重新加载justbox
div,以获得更清晰的标记:
<select>
<option value="1">Item 1</option>
<option value="2">Item 2</option>
<option value="3">Item 3</option>
<option value="4">Item 4</option>
</select>
------------------
<div class="content">
<?php
$args = array(
"meta_query" => array(
array(
'key' => 'meta',
'value' => '$select_value',
)
)
);
query_posts( $args );
?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; else: ?>
<p>sorry no post found with this value.</p>
<?php endif; ?>
项目1
项目2
项目3
项目4
------------------
抱歉,找不到具有此值的帖子
我认为示例代码很清楚,但我想在以下过程中执行此操作:
用户在下拉列表-->获取选择值-->将其放入$select\u value-->运行查询-->显示div框
,而不使用ajax重新加载整个页面
有人能帮我写这个吗
<select id="select-dropdown">
<option value="1">Item 1</option>
<option value="2">Item 2</option>
<option value="3">Item 3</option>
<option value="4">Item 4</option>
</select>
在function.php中
<script type="text/javascript">
var ajax_url = '<?php echo admin_url('admin-ajax.php'); ?>';
</script>
function _boom_load_posts(){
//get your results here as per selected option
if(!empty($_POST['selected_item'])){
$selected_item = $_POST['selected_item'];
$output = '';
//rest of the code as per selected_item, store result in $output
$args = array(
"meta_query" => array(
array(
'key' => 'meta',
'value' => '$select_value',
)
)
);
query_posts( $args );
if ( have_posts() ) : while ( have_posts() ) : the_post();
$output .= get_the_content();
endwhile; else:
$output .= "<p>sorry no post found with this value.</p>"
endif;
echo $output;//you result here
die(1);
}
}
add_action('wp_ajax_load_posts', '_dot1_load_posts');
add_action('wp_ajax_no_priv_load_posts', '_dot1_load_posts');
功能_boom_load_posts(){
//根据所选选项在此处获取结果
如果(!空($_POST['selected_item'])){
$selected_item=$_POST['selected_item'];
$output='';
//其余代码根据所选的_项,将结果存储在$output中
$args=数组(
“元查询”=>数组(
排列(
'键'=>'元',
“值”=>“$select_value”,
)
)
);
查询职位($args);
if(have_posts()):while(have_posts()):the_post();
$output.=获取内容();
结束时;否则:
$output.=“很抱歉,找不到具有此值的帖子。”
endif;
echo$output;//您可以在这里找到结果
模具(1);
}
}
添加操作(“wp\u ajax\u load\u posts”,“dot1\u load\u posts”);
添加操作(“wp\u ajax\u no\u priv\u load\u posts',“\u dot1\u load\u posts”);
进行必要的更改,因为我无法为您发布完整的代码,请做一些努力,上面的代码将帮助您了解它的工作原理。在这里浏览一下有什么问题??你只需要编写jQuery、Ajax和一个PHP函数就可以返回结果。我读过一些这样的帖子,不幸的是没有成功,你能给我一个用我的代码编写的修复方法吗?谢谢你的帮助。@boom_shiva,是的,你是对的,但我不知道他们之间的关系如何,主要问题是获取select值并将其放入$select_值变量,你能帮我吗?你没有检查更新的答案吗?
function _boom_load_posts(){
//get your results here as per selected option
if(!empty($_POST['selected_item'])){
$selected_item = $_POST['selected_item'];
$output = '';
//rest of the code as per selected_item, store result in $output
$args = array(
"meta_query" => array(
array(
'key' => 'meta',
'value' => '$select_value',
)
)
);
query_posts( $args );
if ( have_posts() ) : while ( have_posts() ) : the_post();
$output .= get_the_content();
endwhile; else:
$output .= "<p>sorry no post found with this value.</p>"
endif;
echo $output;//you result here
die(1);
}
}
add_action('wp_ajax_load_posts', '_dot1_load_posts');
add_action('wp_ajax_no_priv_load_posts', '_dot1_load_posts');