【发布时间】:2018-03-04 18:05:13
【问题描述】:
上次我通过手机发布我不完整的问题。 现在这是我的完整问题。 好的所以我的问题是我构建了一个编辑页面editProduct.php。在这里,我构建了三个表单,因为我有 三个类别 每个类别都有自己的表单。这三种形式几乎所有内容都相同。例如:产品名称输入框、条件选择框等等。当我单击编辑按钮打开编辑页面时,我查看产品页面,并在一个字段中显示输入框中产品的当前值,也在复选框中的选择框中显示产品的当前值。这是我的 HTML 代码。
<input type="text" name="p_name[]" value="<?php echo $db_pname; ?>" placeholder="Product Name">
<select name="guarented-delivery[]" id="guarented-delivery">
<option value="1 Days Shipping" <?php if($db_gdelivery=="1 Days Shipping") { echo 'selected="selected"'; } ?>>1 days</option>
<option value="2 Days shipping" <?php if($db_gdelivery=="2 Days shipping") { echo 'selected="selected"'; } ?>>2 days</option>
<option value="3 Days shipping" <?php if($db_gdelivery=="3 Days shipping") { echo 'selected="selected"'; } ?>>3 days</option>
<option value="5 Days shipping" <?php if($db_gdelivery=="5 Days shipping") { echo 'selected="selected"'; } ?>>5 days</option>
<option value="7 Days shipping" <?php if($db_gdelivery=="7 Days shipping") { echo 'selected="selected"'; } ?>>7 days</option>
<option value="10 Days shipping" <?php if($db_gdelivery=="10 Days shipping") { echo 'selected="selected"'; } ?>>10 days</option>
</select>
好的,这就是示例,我有三个类别,每个类别表单我都使用相同的代码。我将 [] 与 name 属性 一起使用,因为它在所有表单中都使用过,以便它获得数组中所有的值。但不知道如何获取输入框中选定文本或新文本的值?因为它向我显示了旧值而不是新输入的值。 这是我的 php 代码。
$name = $_POST['p_name'];
foreach($name as $pname)
{
$pname;
// if i echo here then i shows me old product name 3 times echo outside this loop to get value 1 time.
}
echo $pname;
//for dropdown
$gd = $_POST['gdelivery'];
foreach($gd as $gdelivery)
{
$gdelivery;
}
echo $gdelivery;
帮我解决这个问题。谢谢。
【问题讨论】:
-
一个选择只有一个值。如果你想要更多,那么你需要提供多选属性。也不需要名称中的括号。当您使用
$color_name = isset($_POST['color']) ? (array) $_POST['color'] : [];时,您总是会得到一个可以迭代的数组。 -
实际上我在我的手机上,这就是为什么我没有完全分享我的代码。我只想要一个值。这个选择标签在我的表单中使用了 3 次,它也给了我一个值,但正如我之前问过的,这是我的编辑页面,我在这里显示旧记录,它会自动选择旧的颜色值,但是如果我改变它不会改变的值怎么办值,但仍通过回显在结果中显示旧的选定值。这就是我想要的。
-
在这种情况下,您应该拥有三个不同的名称。每个选择一个自定义的。然后您可以使用 3 个不同的变量进行操作。例如“colors_cars”、“colors_bikes”、“colors_carpets”。
-
这很好,但代码会太大,但我想要小而灵活,可以在所有三个上工作,这是他们的任何方式。
-
好的,我明白了你的意思并发布了一个(经过测试的)答案。