HTML表单发送数组

时间:2016-06-06 11:34:07

标签: php arrays

我的表单如下所示:

<form action="results.php" method="get">

<input type='checkbox' name='batch[]' value='1'>
<input type='text' name='job_id[]' value='111'>

<br>

<input type='checkbox' name='batch[]' value='1'>
<input type='text' name='job_id[]' value='999'>

</br>

<input type='submit' name='submit' value='Submit'>

</form>

enter image description here

在下面的例子中,我只在教科书中选择了999行。

结果显示在results.php页面中,代码如下所示:

<?php

$batch = $_GET['batch'];
$job_id = $_GET['job_id'];

foreach($job_id as $key => $value) {

    echo $batch[$key]." ";
    echo $value."<br>";
    }

?>

上面的代码显示如下:

1 111
999

正如您所看到的那样,1(复选框)位于111旁边。我希望能够允许从所选行中的job_id发送。

希望我已经很好地解释了这个问题。

非常感谢,

约翰

2 个答案:

答案 0 :(得分:1)

在html中添加索引号:

<form action="viewport.php" method="get">

    <input type='checkbox' name='batch[1]' value='1'>
    <input type='text' name='job_id[1]' value='111'>

    <br>

    <input type='checkbox' name='batch[2]' value='1'>
    <input type='text' name='job_id[2]' value='999'>

    </br>

    <input type='submit' name='submit' value='Submit'>

</form>



<?php
if(isset($_GET['batch'])) {
  $batch = $_GET['batch'];
  $job_id = $_GET['job_id'];
  foreach($job_id as $key => $value) {
    if(isset($batch[$key])) {
      echo $batch[$key]." ";
      echo $value."<br>";
    }
  }
}
?>

它只会打印:

1 999

因为只选中了第二个复选框。

答案 1 :(得分:0)

将文本框值赋予复选框。相同的值设置为复选框和文本框。

<强>的Javascript

<form action="test5.php" method="get">

<input type='checkbox' name='batch[]' value='111'>
<input type='text' name='job_id[]' value='111'>

<br>

<input type='checkbox' name='batch[]' value='999'>
<input type='text' name='job_id[]' value='999'>

</br>

<input type='submit' name='submit' value='Submit'>

</form>

<强> PHP

<?php
$batch = $_GET['batch'];
$job_id = $_GET['job_id'];

foreach($batch as $key => $value) {
    echo $value."<br>";
    }

?>