有没有办法可以从表格中的单个字段同时发布两个值,但是却隐藏了一个用户?
我希望以下表单在提交时发布值ID
和reason_name
,但让用户只能看到(并在文本框中编辑){{1} }。
reason_name
到目前为止的表单POST操作(此时基本回显我自己的理智,检查它是否正确发布了值,它确实...)
<form name="add_positioning" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table border="1" class="autoTable_pos">
<tr>
<td>Positioning</td><td> </td></tr>
<?
$sql= "SELECT * FROM gradeReason WHERE reason_userID = $user_id AND category = 'positioning' AND current = 1";
$result = mysqli_query($mysqli,$sql) or die(mysqli_error($mysqli));
while($row = mysqli_fetch_array($result)){?>
<tr>
<td>
<input type="text" name="reason[]" size="25" value="<? echo $row['reason_name']; ?>"/>
</td>
<td>
<input type="button" value="Delete" class="delRow_pos"/>
</td>
</tr>
<?
}
?>
<tr>
<td>
<input type="text" name="reason[]" size="25"/>
</td>
<td>
<input type="button" value="Delete" class="delRow_pos"/>
</td>
</tr>
<tr>
<td colspan="2" align="right">
<input type="submit" value="Save" name="save_reasons"/>
</td>
</tr>
</table>
</form>
此表显示数据库中保存的值,但允许用户通过在键入空时动态地向表中添加新行(使用if(isset($_POST['save_reasons'])) {
foreach($_POST['reason'] as $item) {
echo $item.'<br/>';
}
}
我没有包含)来添加更多值一个在底部,也允许他们编辑或删除现有值。
对于发布的每个值,我打算检查JQUERY
值是否为空,如果是,则表示它是新值并在数据库中输入新记录,如果它不是更新现有值使用相应的ID
在数据库中记录。我写这一点没有问题,我只是无法想到如何在保持ID
隐藏用户的同时发布ID
值以及reason_name
。< / p>
答案 0 :(得分:1)
将ID添加到从DB加载的原因的文本框的name属性中。使用没有ID的JQ保留其他文本框。 例如。 显示从DB
加载的现有原因的文本框 <input type="text" name="reason[][ID]" size="25"/>
使用JQ
添加了文本框<input type="text" name="reason[]" size="25"/>
然后,一旦您提交表单,您将获得以下数组。
array
'reason'=&gt; 排列 0 =&gt; 排列 14 =&gt;字符串'VAL1'(长度= 4) 1 =&gt;字符串'VAL2'(长度= 5)
通过检查“reason”数组中每个元素中的数组,可以区分两种类型的文本框。
以下是我测试的完整代码。
<?PHP
//var_dump($_POST);
foreach($_POST['reason'] as $item=>$value)
{
if(is_array($value)){
foreach($value as $ID=>$reason)
{
echo "Existing Reason : ".$ID." - ".$reason."<br>";
}
}
else{
echo "New Reason : ".$item." - ".$value.'<br/>';
}
}
?>
<form action="" method="POST">
<input type="text" name="reason[][14]" size="25" value="aaaa"/>
<input type="text" name="reason[]" size="25" value="bbbbb"/>
<input name="" type="submit">
</form>
答案 1 :(得分:0)
假设id在$ row ['reason_id'],我想你想要:
$i = 0;
while($row = mysqli_fetch_array($result)){?>
<tr>
<td>
<input type="hidden" name="reason_id[<? echo $i; ?>]" size="25" value="<? echo $row['reason_id']; ?>"/>
<input type="text" name="reason[<? echo $i; ?>]" size="25" value="<? echo $row['reason_name']; ?>"/>
</td>
<td>
<input type="button" value="Delete" class="delRow_pos"/></td></tr>
<? $i++ } ?>
这样你以后可以
if(isset($_POST['save_reasons'])) {
foreach($_POST['reason'] as $key => $item) {
$id = $_POST['reason_id'][$key];
echo $id . " " . $item.'<br/>';
}
}