Javascript 如何在循环中没有提交按钮的情况下提交选择菜单?

Javascript 如何在循环中没有提交按钮的情况下提交选择菜单?,javascript,php,html,Javascript,Php,Html,我有一个代码,当单击选择框中的选项时提交表单,但我的问题是,当我将其放入循环中时,它不起作用。你能帮我吗 代码如下: <?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[]" onchan

我有一个代码,当单击选择框中的选项时提交表单,但我的问题是,当我将其放入循环中时,它不起作用。你能帮我吗

代码如下:

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

只需在函数中使用它
submitform()

document.getElementById("myform").submit();
编辑:我没有注意到你的for循环

您正在for循环中使用表单,所以每个表单都需要单独的id

所以试试这个:

<?php 
$y1=5;
for($x1=1; $x1<=$y1; $x1++){
?>
<form name="myform[]" action="test.php" id ="myform<?php echo $x1;?>" method="post">
<select id="sel_id<?php echo $x1;?>" name="sel_name[]"  onchange="submitform(<?php echo $x1;?>);">
<?php 
$y=5;
for($x=1; $x<=$y; $x++){
?>
<option value="<?php echo $x;?>"><?php echo $x;?></option>
<?php
}
?> 
</select>
</form>
<?php } ?>

请使用selectbox尝试以下提交表单的代码

<select id="sel_id" name="sel_name[]" onchange="this.form.submit()">
    ...
</select>

...

试试看,这可能对你有帮助

$(field).closest("form").submit();
例如,要处理onchange事件,您需要:

$(select your fields here).change(function() {
    $(this).closest("form").submit();
});

您正在使用具有相同
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
}
?>  
<?php
if(isset($_POST['sel_name']))
    print_r($_POST['sel_name']);
?>


您是否介意共享解析的
标记
/parsed markup?那是什么?抱歉,我仍然是一个studentMarkup,它是在执行
php
脚本后形成的。开发人员工具将提供帮助。每次更改选项时,它都会提交表单。那么,其他选项框的用途是什么呢。我认为您需要在选择所有选项后放置一个提交按钮,然后单击将数据发送到test.php页面Nothing,仅此而已,如果您需要插件或脚本?我没用过。如果我去掉第一个就行了loop@RayonDabre现在有用吗?我只是回答问题。代码的格式化应该由OP来完成。我是说这是唯一的方法。你还需要循环中的js函数吗?试试这个onchange=“this.form.submit()”
<?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
}
?>  
<script type="text/javascript">
function submitform(id)
{
    document.getElementById("myform_"+id).submit();
}
</script>
<?php
if(isset($_POST['sel_name']))
    print_r($_POST['sel_name']);
?>