切换值后自动提交

时间:2014-07-11 12:02:03

标签: javascript php jquery

我希望在切换值后自动提交代码如下所示。

的index.php

<form action="foo.php" method="post" id="form1">
<input type="hidden" id="ipt" value="" name="foo">
</form>

<button type="submit" id="btn" value="Leviathan">Leviathan</button>

    <script>

    var btn = document.getElementById('btn');

    btn.addEventListener('click', function(event){

    document.getElementById('ipt').value = event.target.value;
    document.getElementById('form1').submit();}, false);

    </script>

foo.php

<?php if(isset($_POST['foo'])){echo $_POST['foo'];} ?>

我想要的代码是从按钮切换值到输入然后提交。使用上面的代码,它会切换值,但它不会向foo.php提交任何内容。

怎么做?

4 个答案:

答案 0 :(得分:1)

我在此代码中找到的唯一问题

替换

  

文件getElementById('form1')。submit();

  

的document.getElementById( 'form1中')提交();

“”。您的代码中缺少

答案 1 :(得分:1)

尝试下面的代码我会在点击按钮时提交表单并将值传递给foo.php

 <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <form action="foo.php" method="post" id="form1">
    <input type="hidden" id="ipt" value="asdasd" name="foo">
    </form>

    <button type="submit" id="btn" value="Leviathan" onclick="submit_form();">Leviathan</button>

        <script>

        function submit_form()
        {

             $("#form1").submit();
        }
 </script>

它会将Leviathan的值传递给foo.php

答案 2 :(得分:1)

<form class="test-form" action="foo.php" method="post" id="form1">
    <input type="hidden" id="ipt" name="ipt" value="" />
    <button type="submit" class="submit-btn" value="Leviathan">Leviathan</button>
</form>


<script>
    var form = document.querySelector('.test-form');

    form.addEventListener('submit', function(ev) {
        var buttonValue = form.querySelector('.submit-btn').value;
        form.querySelector('#ipt').value = buttonValue;
    });
</script>

“提交表单时,将提交按钮的值设置为#ipt输入的值。”

此外,您的php脚本应该$_POST['ipt']

答案 3 :(得分:1)

当你使用jQuery时...我建议使用它,它会更简单。

的index.php

<form action="foo.php" method="post" id="form1">
    <input type="hidden" id="ipt" value="" name="foo">
</form>

<input type="button" id="btn_01" class="btn_value" value="Leviathan 01" />
<input type="button" id="btn_02" class="btn_value" value="Leviathan 02" />
<input type="button" id="btn_03" class="btn_value" value="Leviathan 03" />

<script>
    $('.btn_value').on('click', function() {
        $('#ipt').val( $(this).val() );
        $('#form1').submit();
    });
</script>

foo.php

<?PHP
    if ( $_POST ) {
        var_dump($_POST);
    } else {
        echo 'nothing...';
    }
?>