我正在尝试提交没有提交按钮的表单。 此表单从wordpress中的自定义字段中获取值,并在另一页中显示结果。我一直在尝试使用通常的javascript函数onchange并且没有任何反应,我也尝试过使用函数...有没有人知道这有什么问题或者是否有更好的方法来解决它?可以是与Wordpress或post方法相关的东西吗?这是表单的代码:
<form method="get" name="form" action="/busqueda/" >
<div class="search">
<select class="styled" name="author" onChange="this.form.submit();">
<option value="-1" selected>Authors</option>
<?php
$metakey = 'author';
$autores = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey) );
if ($authors) {
foreach ($authors as $author) {
echo "<option VALUE=\"" . $author . "\">" . $author . "</option>";
}
}
?>
</select>
</div><!-- #search1 -->
</form>
顺便说一句,使用标准提交按钮显示结果时,表单正常工作。 任何可能出错的暗示都是受欢迎的。非常感谢!
答案 0 :(得分:2)
试试这个:
<form method="get" name="form" action="/busqueda/" >
<div class="search">
<select class="styled" name="author" onChange="document.forms['form'].submit();">
<?php
$metakey = 'author';
$autores = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey) );
if ($authors) {
foreach ($authors as $author) {
echo "<option VALUE=\"" . $author . "\">" . $author . "</option>";
}
}
?>
</select>
</div><!-- #search1 -->
</form>
更新后的表格:
<form id="authorForm" method="get" name="form" action="/busqueda/" >
<div class="search">
<select id="author" class="styled" name="author">
<option value="default">Choose an author...</option>
<?php
$metakey = 'author';
$autores = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey) );
if ($authors){
foreach ($authors as $author) {
echo '<option value="' . $author . '">' . $author . '</option>';
}
}
?>
</select>
</div><!-- #search1 -->
</form>
jQuery脚本更改事件处理和表单提交:
<script type="text/javascript">
$(document).ready(function(){
$('#author').change(function(){
if($(this).val() !== 'default'){
$('#authorForm').submit();
}
});
});
</script>
答案 1 :(得分:0)
我希望您通过$ _GET正确检索帖子之后的值,因为当我在浏览器中运行代码时,该值非常好地传递给URL。检查您的检索代码,确保您使用$ _GET而不是$ _POST。