隐藏的形式发送错误的价值

时间:2014-02-16 14:50:49

标签: php html

工作得很好,但我不知道为什么有些东西被破坏了我无法解决它。问题是,当我试图获得“隐藏输入”的值时,我总是只收到所有值的最大值id.Hidden输入帮我知道wchich按钮被点击在表中。请给我一些提示:(

<?php

include_once '../config.php';
check_doctor();

db_connect();
echo "  <div class='table-responsive'>
            <table class='table table-striped'>
            <thead>
            <tr>
              <th>ID</th>
              <th>Imie</th>
              <th>Nazwisko</th>
              <th>NR.PWZ</th>
            </tr>
            </thead>
            <tbody>";
$sql = "SELECT `lekarz_id` ,`lekarz_imie` ,`lekarz_nazwisko` ,`lekarz_pwz` FROM         `lekarze` ";
$result = mysql_query($sql) or die(mysql_error());

$num_tables = mysql_num_rows($result);
$string="   ";
while ($row = mysql_fetch_row($result)) {
$id = $row[0];

            echo'   <tr>
                <td>'.$row[0].'</a></td>
                <td>'.$row[1].'</a></td>
                                    <td>'.$row[2].'</a></td>
                    <td>'.$row[3].'</td>
                   <td>
                <input type="submit" name="przypisz" class="btn btn-          primary btn-medium" value="Wyślij propozycje" id='.$id.' />
                <input type="hidden" name="lekarz_id" value='.$id.'    />

                   </td>
                   </tr>';
}

?>
</tbody>
</table>
  </div>
 </div>

<?
if(isset($_POST['przypisz']))
{
$user_data = get_user_data_p();


$sender = "P".$_SESSION['pacjent_id'];

$recipient="L".$_POST['lekarz_id'];
echo $recipient;


$once="SELECT `message_id` FROM `messages` WHERE `message_title`= 'LP' AND        `message_recipient`='".$recipient."' AND `message_sender`='".$sender."'";
$result = mysql_query($once) or die(mysql_error());
$row = mysql_fetch_row($result);
        if($row[0] > 0) {
        echo '<p>Już wysłałeś propozycje do tego lekarza.</p>';
        } 
        else
                    {
        $query="INSERT INTO `messages`(`message_title`, `message_text`,    `message_recipient`, `message_sender`, `message_status`, `date_of_posting`)
                    VALUES ('LP','lekarzu,czy jestes w stanie prowadzic   pacjenta?','".$recipient."','".$sender."','nieprzeczytana',Now())";
        mysql_query($query) or die(mysql_error());
        echo "'$sender' Propozycja do lekarza '$recipent' została wysłana";
        }
db_close($db);
 }
 ?>

3 个答案:

答案 0 :(得分:0)

这是因为您在循环中使用相同的名称属性(name =“lekarz_id”)。每次重新分配它的值,并且将存储id的最大值。

答案 1 :(得分:0)

查看此脚本生成的HTML。您会注意到一个表单中名称为"lekarz_id"多个隐藏字段。

当此表单提交给服务器时,$_POST['lekarz_id']变量将重复分配来自该隐藏表单字段的多个值,一次一个。结果是$_POST['lekarz_id']最终包含ID的最后一个(恰好是最大的)值。

答案 2 :(得分:0)

尝试进行while:value =“'。$ id。'”