【问题标题】:PHP : multiple inputs into other multiple inputsPHP:多个输入到其他多个输入
【发布时间】:2013-08-07 22:48:29
【问题描述】:

我使用 jquery 添加/删除输入

我使用 append 为日期/收入添加多个 Tr

我还使用另一个附加在同一日期的 Tr 中添加多个 td 以获取收入

我添加多个日期输入并在此表中添加多个收入输入

我必须使用 name="date[]" 才能使用 for 循环并将每一个插入到 mysql 表中

但同时有多个 name="revenue[]"

这里是例子

    <form method="post" action ="">
    <table>
<tr>
<td>Date : <input type="text" name="date[]" value="25/07/2013"></td>

<td>Revenue : <input type="text" name="revenue[]" value="1"><br>
    Revenue : <input type="text" name="revenue[]" value="2" ><br>
</td>
</tr>

<tr>
    <td>Date : <input type="text" name="date[]" value="26/07/2013"> </td>

    <td>
    Revenue : <input type="text" name="revenue[]" value="12"><br>
    Revenue : <input type="text" name="revenue[]" value="13"><br>
    Revenue : <input type="text" name="revenue[]" value="14"><br>
    </td>
 </tr>   

    <tr>
    <td>Date : <input type="text" name="date[]" value="27/07/2013"></td>
    <td>
    Revenue : <input type="text" name="revenue[]" value="30"><br>
  </td>
 </tr>  
 </table>
    <br><br><input name="submit" value="submit" type="submit">

    </form>

PHP 代码

<?php
if(isset($_POST['submit'])){
$date = $_POST['date'];
echo "Results<br>";
for($i = 0; $i<count($date); $i++){
echo "Date : $date[$i] <br>";
print_r($_POST['revenue']);
echo "<br><br>";
}
}
?>

结果是:

Date : 25/07/2013
Array ( [0] => 1 [1] => 2 [2] => 12 [3] => 13 [4] => 14 [5] => 30 )

Date : 26/07/2013
Array ( [0] => 1 [1] => 2 [2] => 12 [3] => 13 [4] => 14 [5] => 30 )

Date : 27/07/2013
Array ( [0] => 1 [1] => 2 [2] => 12 [3] => 13 [4] => 14 [5] => 30 ) 

我希望结果是这样的

Date : 25/07/2013
Array ( [0] => 1 [1] => 2)

Date : 26/07/2013
Array ( [0] => 12 [1] => 13 [1] => 14)

Date : 27/07/2013
Array ( [0] => 30 ) 

我想将每个日期插入到同一行中具有多个收入的表中

点赞

Date : 25/07/2013     Revenue : 1-2
Date : 26/07/2013     Revenue : 12-13,14
Date : 27/07/2013     Revenue : 30

这对我很重要,非常感谢你

【问题讨论】:

  • 你的循环是错误的,但主要问题是,没有办法分辨哪些“收入”属于哪些“日期”。

标签: php javascript jquery arrays


【解决方案1】:

当您创建 daterevenue 输入时,使用数组表示法命名它们,但包括索引:

<tr>
    <td>Date : <input type="text" name="date[0]" value="25/07/2013"></td>
    <td>
        Revenue : <input type="text" name="revenue[0][]" value="1"><br>
        Revenue : <input type="text" name="revenue[0][]" value="2" ><br>
    </td>
</tr>

<tr>
    <td>Date : <input type="text" name="date[1]" value="26/07/2013"> </td>

    <td>
        Revenue : <input type="text" name="revenue[1][]" value="12"><br>
        Revenue : <input type="text" name="revenue[1][]" value="13"><br>
        Revenue : <input type="text" name="revenue[1][]" value="14"><br>
    </td>
</tr>   

然后您应该能够从$_POST 读取它们为$_POST['date'][0]$_POST['revenue'][0][0]`$_POST['revenue'][0][1] 等。

【讨论】:

  • 但正如我所说,我使用 jquery 添加/删除日期/收入的多个输入,所以我想如果我使用你的方式,当我编码 php 时,如果 $_POST 错过了会导致问题
  • 否 - 您可以使用这些名称在 jQuery 中创建这些元素。我刚刚在这里发布了 HTML 来展示它是如何工作的。
  • 这就是这样做的方法,我一直这样做。虽然我确实 name="update[0][date]", name="update[0][revenue][0]", name="update[0][revenue][1]" 等等
  • 是的 Mike W,我理解你,但是看,我将使用 jquery 执行以下操作,我将使用 append:将收入输入重命名为:revenue[1][] in first Tr of date,然后我添加了 jquery 日期的第二个 TR 并重命名: 收入输入到收入 [2] [] ,如果我删除具有收入 [2] [] 的数据的第二个 TR 怎么办,我将在日期数组上使用 for 循环,那么如何我可以查看该日期的收入吗?
  • 您的 PHP 脚本可以在一个 foreach 循环中迭代日期,并在第二个内部 foreach 循环中迭代收入。具体如何操作取决于您的应用程序。这真的是一个不同的问题。试一试,如果遇到困难,请发布一个新问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-22
  • 2013-12-07
  • 1970-01-01
  • 1970-01-01
  • 2016-11-28
相关资源
最近更新 更多