从php中的select数组标签中获取价值?

时间:2018-03-03 18:24:09

标签: php mysql

上次我从手机发布了不完整的问题。 现在这是我的完整问题。 好的我的问题是我建立了一个编辑页面 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>

好的,所以这是一个例子,我有三个类别,每个类别形式我都使用相同的代码。我将 [] 名称属性一起使用,因为它在所有表单中使用,以便它在数组中获得all的值。但是不知道如何在输入框中获取所选文本或新文本的值?因为它显示了旧值而不是新输入的值。这是我的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;

帮我解决这个问题。谢谢。

1 个答案:

答案 0 :(得分:2)

在讨论您的意见后,这将适合您:

重要的是,所有选择必须在同一表格内。

<form method="post">
    <select name="colors[]"><option value="black">black</option></select>
    <select name="colors[]"><option value="red">red</option></select>
    <select name="colors[]"><option value="gold">gold</option></select>
    <input type="submit">
</form>

<?php
$colors = isset($_POST['colors']) ? (array) $_POST['colors'] : [];

foreach($colors as $color)
{
    echo "$color<br>\n";
}

// black
// red
// gold