Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果所选值在没有按钮的情况下更改,则提交wordpress表单_Javascript_Wordpress_Forms_Submit_Onchange - Fatal编程技术网

Javascript 如果所选值在没有按钮的情况下更改,则提交wordpress表单

Javascript 如果所选值在没有按钮的情况下更改,则提交wordpress表单,javascript,wordpress,forms,submit,onchange,Javascript,Wordpress,Forms,Submit,Onchange,我正在尝试提交一个没有提交按钮的表单。 此表单从wordpress中的自定义字段中获取值,并在另一个页面中显示结果。我一直在尝试使用通常的javascript函数onchange,但什么都没有发生,我也尝试过使用函数……有人知道这有什么问题吗,或者是否有更好的方法来解决它?这可能与Wordpress或post方法有关吗?这是表单的代码: <form method="get" name="form" action="/busqueda/" > <div class

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

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

试试这个:

<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提交更新 更新后的表格:

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

$(文档).ready(函数(){
$('#author')。更改(函数(){
if($(this.val()!='default'){
$('#authorForm')。提交();
}
}); 
});

您可以测试

我希望您通过$\u GET正确地检索文章后的值,因为当我在浏览器中运行代码时,该值在URL中传递得非常好。检查检索代码,确保使用的是$\u GET而不是$\u POST。

为什么要比较值?我只想让它进入搜索结果页面,但不需要按钮:)谢谢,@Shef。我也试过了,但仍然不起作用。我相信javascript是好的。是不是有什么东西在干扰这件事?我在同一个页面中有另一个表单,但没有,它没有任何名为“提交”的按钮,我认为这是一个常见错误。还有什么东西不能在任何浏览器中使用呢(或者有其他方法可以尝试吗?谢谢!嗯……请给我们一个在线页面,我们可以在那里查看它,然后从那里开始调试。当您更改作者与否时,表单是否会提交?例如,当您更改作者时,是否会将您带到
site.com/busqueda/?author=abcd
?@Shef,我不能给您一个在线页面。)他的是一个正在进行的工作的一部分,我无法显示它:(该表单使用提交按钮,将您带到site.com/busqueda。这是一个wordpress网站,因此我必须创建一个新页面,并链接一个名为“busqueda”的自定义模板页面,该页面处理结果并显示结果(如果有帮助,我可以发布该页面)。看起来好像没有看到javascript,因为我正在尝试onChange=“alert('alert'))更改作者时什么也没发生。看起来很糟糕。我可以试试jquery吗?我已经安装了这个库,它可以与页面中的一些其他元素配合使用。是的,我正在使用$\u GET来检索值,我尝试了$\u GET和$\u POST,并且都使用了提交按钮。我还尝试了提示一个警报,但似乎没有看到它任何javascript。这都快把我逼疯了。为了尝试,你可以把“javascript:this.form.submit();”放在那里。耶,也试过了。看起来这可能是javascript的Wordpress问题,警报也不起作用,这很奇怪。我可能会尝试使用jquery。。