Php: on submit echo td fields and ad new td

自闭症网瘾萝莉.ら 提交于 2019-12-25 04:39:11

问题


I have the following code:

<form action="" method="POST">
<?php
$count = isset($_POST['count']) ? $_POST['count'] : 1;
if($count > 11) $count = 11;
?>

<table>
<!-- Keeps track of the current number of rows -->
<input type="hidden" name="count" value="<?php echo $count+1; ?>"/>

<?php for($i = 0; $i < $count; $i++): 
    // Loop through all rows gathering the data here, and then creating the fields below
    $val0 = isset($_POST['field'][$count]['0']) ? $_POST['field'][$count]['0'] : '';
    $val1 = isset($_POST['field'][$count]['1']) ? $_POST['field'][$count]['1'] : '';
    $val2 = isset($_POST['field'][$count]['2']) ? $_POST['field'][$count]['2'] : '';
?>
<tr>

    <td><input name="field[<?php echo $count; ?>][0]" value="<?php $val0; ?>"/></td>
    <td><input name="field[<?php echo $count; ?>][1]" value="<?php $val1; ?>"/></td>
    <td><input name="field[<?php echo $count; ?>][2]" value="<?php $val2; ?>"/></td>
</tr>
<?php endfor; ?>

</table>

<input type="submit" value="click me" />
</form>

The problem is when I press submit it add 3 other fields but it clears the other fields. How can I keep the content from the fields but make them uneditable?


回答1:


You are not echoing your values and your $count should be $i, as you'll end up with same field names

<form action="" method="POST">
<?php
$count = isset($_POST['count']) ? $_POST['count'] : 1;
if($count > 11) $count = 11;
?>

<table>
<!-- Keeps track of the current number of rows -->
<input type="hidden" name="count" value="<?php echo $count+1; ?>"/>

<?php for($i = 0; $i < $count; $i++): 
    // Loop through all rows gathering the data here, and then creating the fields below

    $val0 = isset($_POST['field'][$i]['0']) ? $_POST['field'][$i]['0'] : '';
    $val1 = isset($_POST['field'][$i]['1']) ? $_POST['field'][$i]['1'] : '';
    $val2 = isset($_POST['field'][$i]['2']) ? $_POST['field'][$i]['2'] : '';
?>
<tr>

    <td><input name="field[<?php echo $i; ?>][0]" value="<?php echo $val0; ?>"/></td>
    <td><input name="field[<?php echo $i; ?>][1]" value="<?php echo $val1; ?>"/></td>
    <td><input name="field[<?php echo $i; ?>][2]" value="<?php echo $val2; ?>"/></td>
</tr>
<?php endfor; ?>

</table>

<input type="submit" value="click me" />



回答2:


for($j=0;$j<3;$j++){
  echo '<input type="hidden" name="field['.$i.'][0]" value="'.$_POST[field][$i][0].'" />';
}


来源:https://stackoverflow.com/questions/5702863/php-on-submit-echo-td-fields-and-ad-new-td

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!