我有一个代码可以在单击选择框中的选项时提交表单,但我的问题是当我将它放在循环中时,它不起作用。你能帮我吗?
代码如下:
<?php
$y1=5;
for($x1=1; $x1<=$y1; $x1++){
?>
<form name="myform[]" action="test.php" id ="myform" method="post">
<select id="sel_id" name="sel_name[]" onchange="submitform();">
<?php
$y=5;
for($x=1; $x<=$y; $x++){
?>
<option value="<?php echo $x;?>"><?php echo $x;?></option>
<?php
}
?>
</select>
</form>
<script type="text/javascript">
function submitform()
{
document.myform.submit();
}
</script>
<?php
}
?>
现在,我要打印它的每个值:
<?php
echo $_POST['sel_name'];
?>
最佳答案
您正在使用具有相同 id="myform"
的多个表单.这对于每种形式都应该是唯一的。
示例:
<?php
$y1=5;
For($x1=1; $x1<=$y1; $x1++){
?>
<form name="myform[]" action="test.php" id ="myform_<?=$x1?>" method="post">
<select id="sel_id" name="sel_name[]" onchange="submitform(<?=$x1?>);">
<?php
$y=5;
For($x=1; $x<=$y; $x++){
?>
<option value="<?php echo $x;?>"><?php echo $x;?></option>
<?php
}
?>
</select>
</form>
<?php
}
?>
您的 Java 脚本:
<script type="text/javascript">
function submitform(id)
{
document.getElementById("myform_"+id).submit();
}
</script>
你的 test.php:
<?php
if(isset($_POST['sel_name']))
print_r($_POST['sel_name']);
?>
我使用不同的表单 ID 作为 myform_<?=$x1?>
并将此 ID 用于 submitform()
功能。
根据@Mr.Engineer,无需使用 java 脚本函数 submitform()
在for()
里面当您使用唯一 ID 提交表单时。
关于javascript - 如何在循环中提交没有提交按钮的选择菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35448918/