将表单字段值传递给新(动态)页面

时间:2015-04-03 11:27:21

标签: php jquery forms variables post

我试图将输入字段中的值传递给其他页面。 不幸的是,价值不是检索/不工作,所以希望有人可以帮助我。

page.php文件

<form action="" id="testform" method="post">          
    <select size="1" class="dropdown">
        <?php // dropdown options (pages)
        $Args = array ('cat' => 1);
        $loop = new WP_Query( $Args );
        while($loop->have_posts()) : $loop->the_post(); ?>          
           <option value="<?php echo get_permalink(); ?>">
               <?php the_title(); ?>
           </option>     
        <?php endwhile; ?>
    </select>    
    <input id="year" name="year" type="text" value=""/><!--The value that will be passed to another page -->
    <input class="button" name="submit" type="submit" value="ENTER"/>   
</form>

提交 - 转到位置(表单操作)

    $(".button").click(function(){   
        var linkadress = $('.dropdown option:selected').val();
        window.location = linkadress;
        return false;
    });

Footer.php

问题:传递值(字段ID =年)

var yearfield = "<?php echo htmlspecialchars($_POST['year']); ?>";
alert(yearfield); // Currently no value is passed

构建于wordpress platform。表单在所有页面上都可见。在对表单进行求和时,应在新页面(选定的下拉列表位置)上检索'year'值。其余的代码工作正常。

3 个答案:

答案 0 :(得分:1)

您必须获得选择而非选项的值。 (另外最好为select设置ID并使用jquery ID选择器而不是类选择器。)

 $(".button").click(function(){   
        var linkadress = $('.dropdown').val();
        window.location = linkadress;
        return false;
    });

答案 1 :(得分:1)

您是否要根据下拉列表的值更改表单操作, 如果是的话那么;

$("#testform").submit(function(){   
    var linkadress = $('.dropdown option:selected').val();
    $(this).attr('action', linkadress);
});

答案 2 :(得分:1)

您没有提交(发布)表单,而是在单击按钮时重定向。所以PHP永远不会收到$ _POST。

您必须在函数中使用submit(),或者必须将年变量添加到网址。

$(".button").click(function(){   
        var linkadress = $('.dropdown').val();
        $("#testform").setAttribute('action', 'linkadress');
        $("#testform").submit();
        //Now you can use $_POST['year'] in linkadress
        return false;
    });

$(".button").click(function(){   
        var linkadress = $('.dropdown option:selected').val();
        var year = $().val('#year'); 
        window.location = linkadress + '?year=' + year;
        //Now you can use $_GET['year'] in linkadress
        return false;
    });