0

下面是我试图在多行中更改一列的值的代码,但我有点卡住了。

文件 1

<form name="update-location" method="post" action="recibos_location_update.php">

<div align="right"><button type="submit">Actualizar Estado</button></div>
<hr />

<ul>
    <?php
        $get_logs = mysql_query("SELECT * FROM recibos ORDER BY id DESC");
        while ($logs = mysql_fetch_array($get_logs)){

        $serial = $logs['serial'];
        $check = $logs['location'];
        $problem = $logs['problem'];
    ?>

    <li class="<?php 
        if ($check == $location1){echo 'recibos-container-shop-li';}
        if ($check == $location2){echo 'recibos-container-haji-li';}
        if ($check == $location3){echo 'recibos-container-return-li';} ?>">

        <?php echo $serial . " | " . $logs['model'] . " | " . $problem; ?>

        <div align="right">
            <?php
                if ($check != 'Returned'){
            ?>
                <input type="hidden"  name="serial[]" value="<?php echo $serial; ?>" />
                <select name="location">
                    <option <?php if ($check == $location1){echo 'selected';} ?> value="<?php echo $location1; ?>" style="background: #fff8bf;">Mobils Calfont</option>
                    <option <?php if ($check == $location2){echo 'selected';} ?> value="<?php echo $location2; ?>" style="background: #ffc1bf;">Haji Jorda</option>
                    <option <?php if ($check == $location3){echo 'selected';} ?> value="<?php echo $location3; ?>"style="background: #ecffbf;">Devuelto</option>
                </select>
            <?php
            }
            else {
                echo "<i><font color='#5e8029'>Devuelto</font></i>";
            }
            ?>
        </div>
    </li>
    <?php } ?>
</ul>

文件 2

<?php
include "connect.php";
include "links.php";


foreach($_POST["serial"] as $serial){

    $location = $_POST['location'];
    echo $location . " " . $serial . "<br>";
}
mysql_query("UPDATE recibos SET location='$location' WHERE serial='$serial'");

//header("Location: " . $_SERVER['HTTP_REFERER']);

?>

我得到的输出是:

Haji 900005
Haji 900004
Haji 900002

但是对于所有 3 个输出行,它应该给出不同的名称,因为 3 个选择框中的名称不同。

我需要的是流程表单使用选择框选项中包含的值更新每一行。

4

2 回答 2

0

html

<select name="location[]">

php

foreach($_POST["serial"] as $k=> $serial){

    $location = $_POST['location'][$k];
    mysql_query("UPDATE recibos SET location='$location' WHERE serial='$serial'");
}
于 2013-04-11T07:15:25.923 回答
0
foreach($_POST["serial"] as $serial){

    $location = $_POST['location'];
    echo $location . " " . $serial . "<br>";
    mysql_query("UPDATE recibos SET location='$location' WHERE serial='$serial'");//update
}
//    mysql_query("UPDATE recibos SET location='$location' WHERE serial='$serial'");
于 2013-04-11T06:36:01.513 回答