Php 传递下拉选择的分类数据以提交操作和搜索
我知道有很多问题都在问同样的问题,但当涉及到函数时,我就不知所措了。 我正在使用wordpress functions.php中存储的php函数,我可以从模板中调用该函数,以便在下拉列表中获取分类法中存储的所有数据Php 传递下拉选择的分类数据以提交操作和搜索,php,html,wordpress,function,Php,Html,Wordpress,Function,我知道有很多问题都在问同样的问题,但当涉及到函数时,我就不知所措了。 我正在使用wordpress functions.php中存储的php函数,我可以从模板中调用该函数,以便在下拉列表中获取分类法中存储的所有数据 function custom_taxonomy_dropdown( $taxonomy, $exclude = array(''), $name, $show_option_all = null ) { $args = array( 'exclude' => $e
function custom_taxonomy_dropdown( $taxonomy, $exclude = array(''), $name,
$show_option_all = null )
{
$args = array(
'exclude' => $exclude,
'order' => $order,
'hide_empty' => 1,
'order' => 'ASC',
'echo' => 1
);
$terms = get_terms( $taxonomy, $args );
$name = ( $name ) ? $name : $taxonomy;
if ( $terms ) {
printf( '<select name="%s" class="postform">', esc_attr( $name ) );
if ( $show_option_all ) {
printf( '<option value="0">%s</option>', esc_html( $show_option_all ) );
}
foreach ( $terms as $term ) {
printf( '<option value="%s">%s</option>', esc_attr( $term->slug ),
esc_html( $term- >name ) );
}
print( '</select>' );
}
}
因此,我得到了一些非常有选择性的下拉列表,其中包含了所有的分类信息。但是,如何将每个下拉列表中选定的数据传递给submit操作,从而单击submit按钮并在my Haven done search.php中获得正确的结果
<form action="<?php echo home_url('/'); ?>" method="get" class="">
<input type="submit" value="Submit">
</form>
编辑:所以,通过执行最后一步,我不知道下一步是否是query\u posts($query\u string)
,但无论如何,这对我没有帮助。也许我在这里搞糊涂了。即使当我回应$query\u string
时,查询还是不同的,它甚至显示了其中的页面名。所以,虽然这是最好的方法,但我决定不再深入,因为我在这个问题上浪费了很多时间。因此,我采用了简单的方法,决定将通过isset($\u GET[“taxonomy”]
获得的变量值传递到$args
并查询它。结果如下:
$category_ID = get_category_id(''.$category_get); // Calling function
$idioma_ID = get_tag_id(''.$idioma_get); // to get ID's by name
$args = array(
'cat' => ''.$category_ID.'',
'category_name' => ''.$category_get.'',
'tag' => ''.$idioma_get.'',
'tag_in' => ''.$idioma_ID.'',
'director' => ''.$director_get.'',
'escritor' => ''.$escritor_get.'',
'actor' => ''.$actor_get.'',
);
我之所以包括cat和category_名称是因为这两个词,所以它就像一个补丁。'Select All'
选项值不能为0,因为它将强制所有下拉列表不保留在Select All选项上,而是选择不同的数据。在我的例子中,它的值不是0,它只是:'
所以,对于未来的引用,这是我已经解决的问题。我的解决方案不使用查询字符串,而是使用由代码> $$GET获得的值,这是我不能完全考虑的。在这个问题中唯一的答案帮助我解决这个问题,但是它没有帮助我把变量传递给查询,所以我想我不能选择一个。此处回答正确或完整。如果其他人发布如何将正确数据传递到
$query\u string
,这将是正确答案。如果我理解您的问题,您想知道如何读取search.php
文件中的选定值
首先,表单操作应该是action=“path\u to\u searchphp/search.php”
然后在search.php
中,您可以通过访问$\u GET[$name]
来检索所选的值。此变量的值将是HTML表单中的值。从中可以看出选择了哪部电影等
想象一下你的HTML是
<form action="search.php" method="GET" class="">
<select name="film">
<option value="0">Film 1</option>
<option value="1">Film 2</option>
<option value="2">Film 3</option>
<option value="3">Film 4</option>
</select>
<input type="submit" value="Submit">
</form>
每个下拉列表都需要是输入
,选择选项
,然后给出值
。
$category_ID = get_category_id(''.$category_get); // Calling function
$idioma_ID = get_tag_id(''.$idioma_get); // to get ID's by name
$args = array(
'cat' => ''.$category_ID.'',
'category_name' => ''.$category_get.'',
'tag' => ''.$idioma_get.'',
'tag_in' => ''.$idioma_ID.'',
'director' => ''.$director_get.'',
'escritor' => ''.$escritor_get.'',
'actor' => ''.$actor_get.'',
);
<form action="search.php" method="GET" class="">
<select name="film">
<option value="0">Film 1</option>
<option value="1">Film 2</option>
<option value="2">Film 3</option>
<option value="3">Film 4</option>
</select>
<input type="submit" value="Submit">
</form>
if(isset($_GET["film"]))
{
$value = $_GET["film"];
// do $value validation
// do something with $value
}