我希望在切换值后自动提交代码如下所示。
的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提交任何内容。
怎么做?
答案 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
时...我建议使用它,它会更简单。
<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>
<?PHP
if ( $_POST ) {
var_dump($_POST);
} else {
echo 'nothing...';
}
?>