我正在使用room_extras表的主键为我的额外文本字段创建一个唯一的名称。
下面是一个例子:
<tr>
<td><?php echo $extrasInfo['description'] ?></td>
<td>
<input type="text" name="extra[<?php echo $extrasInfo['re_id'] ?>]" id="qty" value="0" style="text-align: right" size="5" onKeyPress="return isNumberKey(event)" />
</td>
<td align="right"><?php echo number_format($extrasInfo['price'],2) ?></td>
</tr>
正如您所看到的,名称是使用此代码extra[<?php echo $extrasInfo['re_id'] ?>]
生成的。
这在html中的结果是:
<tr>
<td colspan="3"><h3>Economy Room</h3></td>
</tr>
<tr>
<td>Extra Person</td>
<td><input type="text" name="extra[19]" id="qty" value="1" style="text-align: right" size="5" onKeyPress="return isNumberKey(event)"></td>
<td align="right">560.00</td>
</tr>
<tr>
<td>Breakfast for Extra Person</td>
<td><input type="text" name="extra[20]" id="qty" value="1" style="text-align: right" size="5" onKeyPress="return isNumberKey(event)"></td>
<td align="right">150.00</td>
</tr>
<tr>
<td colspan="3"><h3>Deluxe</h3></td>
</tr>
<tr>
<td>Extra Person</td>
<td><input type="text" name="extra[1]" id="qty" value="0" style="text-align: right" size="5" onKeyPress="return isNumberKey(event)"></td>
<td align="right">730.00</td>
</tr>
<tr>
<td>Breakfast for Extra Person</td>
<td><input type="text" name="extra[2]" id="qty" value="0" style="text-align: right" size="5" onKeyPress="return isNumberKey(event)"></td>
<td align="right">269.00</td>
</tr>
根据re_id
字段(即$extrasInfo['re_id']
)的值,数组返回不同的密钥,如:
extra[19]
extra[20]
extra[1]
extra[2]
所以我的问题是,在"额外"之后,我如何获得价值?也就是说,数字19、20、1和2。
以下是我开始的内容:
$size = count($_POST['extra']);
$i = 0;
while ($i < $size) {
$qty = $_POST['extra'][$i];
$re_id = ????; //what should be the code here?
$query = "$sql_extras="INSERT INTO `lf_bookings_extras`(`re_id`, `booking_number`, `price`, `qty`, `amount`) VALUES ('$re_id','$booking_number','$price','$qty','$amount')";";
mysql_query($query) or die ("Error in query: $query");
++$i;
}
您不应该根据表单输入命名extra
数组,这样您就可以在该数组中循环。
$re_id = $_POST['extra'][$i];
和HTML
<input type="text" name="extra[]" id="qty" value="1" style="text-align: right" size="5" onKeyPress="return isNumberKey(event)">
或者如果你真的想做
foreach($_POST['extra'] as $key => $val){
$qty = $val;
$re_id = $key;
// $key will be the id passed from input
// mysql insert
}
附言:请不要对新代码使用mysql_*
函数。它们不再被维护,社区已经开始了贬低过程。是否看到红框?相反,您应该了解准备好的语句,并使用PDO或MySQLi。如果你不能决定,这篇文章将有助于你的选择。如果你想学习,这里有一个很好的PDO教程。