如果选择的值更改没有按钮,则提交wordpress表单

时间:2011-06-12 19:42:02

标签: javascript wordpress forms submit onchange

我正在尝试提交没有提交按钮的表单。 此表单从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>

顺便说一句,使用标准提交按钮显示结果时,表单正常工作。 任何可能出错的暗示都是受欢迎的。非常感谢!

2 个答案:

答案 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>

更新了jQuery submit

更新后的表格:

<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>

您可以测试jQuery from submit on drop box change event

答案 1 :(得分:0)

我希望您通过$ _GET正确检索帖子之后的值,因为当我在浏览器中运行代码时,该值非常好地传递给URL。检查您的检索代码,确保您使用$ _GET而不是$ _POST。