0

必要な数に基づいて、チェックボックス フィールドとテキスト フィールド フィールドを動的に生成するフォームがあります。これがフォームと生成されたフィールドです

<?php
     $num = "6";
     $index = "0";
     echo "<form action='".$_SERVER['PHP_SELF']."' name='myform' method='post'>";
     echo "<table>";
     for($i= 0;$i<$num;$i++){
        echo "<tr><td><input type='hidden' name='indexnum[]' value='".$index."'><input type='checkbox' name='mychecks[]' value='check".$i."'><input type='text' name='checktext[]' size='20'></td><tr>";
$index++;
     }
    echo "<tr><td><input type='submit' name='submit' value='Submit'/></td></tr>";
    echo "</table>";
    echo "</form>";
   if(isset($_POST['submit'])){
    $num = count($_POST['indexnum']);
     for($i=0;$i<$num;$i++){
        $index = $_POST['indexnum'];
        $checkvalues = $_POST['mychecks'];
        $textValue = $_POST['checktext'];
        echo $index[$i].".)".$checkvalues[$i]." coressponse ".$textValue[$i]."<br>";

}
}
?>

問題は、テキストフィールドの値を正しく取得できないことですが、チェックボックスの値は問題ありません。誰か私をここから助けてください。私が欲しいのは、チェックボックスがチェックされ、対応するテキストフィールドの値が入力されたときです。2 つの値は 1 行に表示する必要があります。つまり、1 行に 1 つとして表示する必要があります。ありがとう

4

1 に答える 1

0

配列フィールドにアクセスする必要があります。したがって、あなたの種類のソリューションを保持しながら:

...
$index = $_POST['indexnum'][$i];
$checkvalues = $_POST['mychecks'][$i];
$textValue = $_POST['checktext'][$i];
...

入力が 2 つだけのソリューション:

<form action='<?php echo $_SERVER['PHP_SELF'];?>' name='myform' method='post'>
 <table>
  <?php

  $num = "6";

  for($i= 0;$i<$num;$i++)
  {
  ?>
  <tr>
   <td>
    <input type='checkbox' name='mychecks[<?php echo $i;?>]' value='1'>
    <input type='text' name='checktext[<?php echo $i;?>]' size='20'>
   </td>
  </tr>
  <?php            
  }  
  ?>    

  <tr><td><input type="submit" name="submit" value="Submit" /></td></tr>
 </table>
</form>
<?php    

if(isset($_POST['submit']))
{
  $i = 1;

  foreach ($_POST["mychecks"] as $id=>$val)
  {
    echo ($i++).".)".$id." coressponse ".$_POST["checktext"][$id]."<br>";
  }    
}
?>
于 2012-09-10T22:00:06.590 に答える