2013-07-10 37 views
0

我有一个5×2 HTML表格:http://jsfiddle.net/duxTU/粘性形式未定义,偏移

  • 该表被封闭在一种形式。
  • 当表单提交它重定向到同一页
  • 输入字段值被存储在关联数组
  • 中的值显示在它们最初被输入相应字段中。

代码:

<?php 
if(isset($_POST['submit'])) { 
    $contacts_array array(
     $_POST["name1"] => $_POST['name2'], 
     $_POST["name3"] => $_POST['name4'], 
     $_POST["name5"] => $_POST['name6'], 
     $_POST["name7"] => $_POST['name8'], 
     $_POST["name9"] => $_POST['name10']); 

$array_filtered=array_filter($contacts_array); 
$arrayKeys = array_keys($array_filtered); 
$arrayValues = array_values($array_filtered); 
} 
?> 

的阵列已被过滤,省略了可在蠕变空值

现在,我该如何使HTML表单显示值?我知道粘形式,但因为我必须保持窗体大小不变(5×2),我想使用类似的代码如下

<input type="text" value="<?php echo $arrayKeys[0]; ?> "> 
<input type="text" value="<?php echo $arrayValues[0]; ?> "> 

...直到$ arrayKeys [4]和$ [4] arrayValues,分别。

这给了我一个未定义的偏移量,例如$arrayKeys[5]没有设置,因为在提交之前没有在相应的表单栏中输入任何值。

此问题的任何解决方案?通过阵列

foreach ($array_filtered as $k=>$v) { 
    echo "<input type='text' value='".$k."'>"; 
    echo "<input type='text' value='".$v."'>"; 
} 

foreach循环:

+2

如果数组如果5x2那么你应该上去4不是5 ... 0,1,2,3,4 = 5值 – Orangepill

+0

ya感谢指出,但这并不能解决原来的问题。 – Mayur

+0

你为什么要再次筛选出空值?看起来,如果你停止这样做,你的问题就会消失。 – Orangepill

回答

0

如果你只是想显示的值,一个foreach将伟大的工作。 $k是当前的关键。 $v是当前值。

当然,这应该在你的表单HTML里面。

+0

很抱歉..有错别字.. $ array_filtered = array_filter($ contacts_array); 我编辑了主要问题。 – Mayur

+0

哎。已删除段落。 :( – Ben

0

也许这会为你工作:

<?php 
    function getPost($param){ 
     return isset($_POST[$param])?$_POST[$param]:""; 
    } 
?> 
<form action="#" method="post"> 
    <table> 
     <tr> 
      <td>Name</td><td>Age</td> 
     </tr>  
     <tr> 
      <td><input type="text" name="name1" value="<?= getPost("name1") ?>"></td> 
      <td><input type="text" name="name2" value="<?= getPost("name2") ?>"></td> 
     </tr> 
     <tr> 
      <td><input type="text" name="name3" value="<?= getPost("name3") ?>"></td> 
      <td><input type="text" name="name4" value="<?= getPost("name4") ?>"></td> 
     </tr> 
     <tr> 
      <td><input type="text" name="name5" value="<?= getPost("name5") ?>"></td> 
      <td><input type="text" name="name6" value="<?= getPost("name6") ?>"></td> 
     </tr> 
     <tr> 
      <td><input type="text" name="name7" value="<?= getPost("name7") ?>"></td> 
      <td><input type="text" name="name8" value="<?= getPost("name8") ?>"></td> 
     </tr><tr> 
      <td><input type="text" name="name9" value="<?= getPost("name9") ?>"></td> 
      <td><input type="text" name="name10" value="<?= getPost("name10") ?>"></td> 
     </tr> 
     <tr> 
      <td><input type="submit" value="submit" name="submit"></td> 
     </tr> 
    </table> 
</form> 

的的getPost助手的形成是因为我不希望有输入条件的每一次。

您可以过滤出您正在进行的任何其他表单处理的空值。