更新到下面:如何在php中編輯表單中填充下拉框
我改變了代碼,有點成功,但我仍然關閉一件事。我改了行
<option value="<?php echo $row[brokername]; ?>" <?php if ($row[brokername] == $brokerlistrow[id]) { echo selected; } ?> ><?php echo $brokerlistrow[name]; ?></option>
到
<option value="<?php echo $brokerlistrow[name]; ?>" <?php if ($row[brokername] == $brokerlistrow[id]) { echo selected; } ?> ><?php echo $brokerlistrow[name]; ?></option>
<?php } ?> </select>
現在,它顯示了正確的選擇名稱和實際保存在數據庫中更改的值然而,而不是保存名稱id號,這樣可以節省實際名稱。 $ row的print_r給我:
Array([0] => 4 [id] => 4 [1] => 6 [brokername] => 6 [2] => Kims Boat [boatname] => Kims Boat)
該選定用戶的正確brokerlist.id爲6,但不是將6保存到boatlist.name,而是保存brokerlist.name字段而不是brokerlist.id。
我可以更改哪些內容以保存brokerlist.id而不是物理名稱? :)
預先感謝您!
(這裏是新的編輯頁面代碼,以防萬一:
<?php
include_once('db.php');
if(isset($_GET['edit']))
{
$id = $_GET['edit'];
$res= mysql_query("SELECT * FROM boatlist WHERE id='$id'");
$row= mysql_fetch_array($res);
$brokerlistquery = mysql_query("SELECT * FROM brokerlist");
print_r($row);
}
if(isset($_POST['newbrokername']) && isset($_POST['newboatname']))
{
$newbrokername = $_POST['newbrokername'];
$newboatname = $_POST['newboatname'];
$id= $_POST['id'];
$sql = "UPDATE boatlist SET brokername='$newbrokername', boatname='$newboatname' WHERE id='$id'";
$res= mysql_query($sql) or die("Could not update".mysql_error());
echo "<meta http-equiv='refresh' content='0;url=testaddboat.php'>";
}
?>
<table class="centerwithroom">
<form action="testeditboat.php" method="POST">
<tr>
<td>New Broker Name </td><td>
<select name='newbrokername'>
<?php
while ($brokerlistrow = mysql_fetch_array($brokerlistquery)) {
?>
<option value="<?php echo $brokerlistrow[name]; ?>" <?php if ($row[brokername] == $brokerlistrow[id]) { echo selected; } ?> ><?php echo $brokerlistrow[name]; ?></option>
<?php } ?> </select>
</td>
<tr>
<td>Boat Name:</td><td><input type="text" name="newboatname" value="<?php echo $row[boatname]; ?>"/></td>
</tr>
</tr>
<td></td><td><input type="submit" value=" Update "/></td>
</tr>
<input type="hidden" name="id" value="<?php echo $row[id]; ?>"/>
</form>
</table>
(ORIG POST從這裏開始)
這是我的第一篇文章,我會盡可能地做到爲徹底可能的,這只是一個基本的形式,我沒有添加任何安全性,因爲我只是想讓它工作,然後去休息:)對編程我的代碼的新手可能看起來不好,你們的一些專家我會喜歡你可以給的任何例子。
在項目上。我有兩個MySQL表,一個叫做brokerlist,有兩個字段id和name。第二個表被稱爲boatlist,有三個字段id,brokername和boatname。 brokername字段包含brokerlist.id字段的值和文本輸入的船名。
我已經創建了php添加表單,以將數據添加到兩個正常工作的表中。我已經創建了一個php編輯表單來編輯可正常工作的brokerlist表。我的問題在於我稱之爲testsitboat.php的表單。我想要做的是允許用戶更改被測試的.boat.php表單中的字段brokername,並使用從mysql表代理列表中填充的下拉框,但也使用當前條目的選定內容。
我的表單現在的地位在於它提交請求並將更改boatname字段中的任何值,但不會更新brokername字段。
非常感謝大家的幫助,希望我已經足夠描述了。
我的測試船的代碼。PHP的形式如下:
<?php
include_once('db.php');
if(isset($_GET['edit']))
{
$id = $_GET['edit'];
$res= mysql_query("SELECT * FROM boatlist WHERE id='$id'");
$row= mysql_fetch_array($res);
$brokerlistquery = mysql_query("SELECT * FROM brokerlist");
}
if(isset($_POST['newbrokername']) && isset($_POST['newboatname']))
{
$newbrokername = $_POST['newbrokername'];
$newboatname = $_POST['newboatname'];
$id= $_POST['id'];
$sql = "UPDATE boatlist SET brokername='$newbrokername', boatname='$newboatname' WHERE id='$id'";
$res= mysql_query($sql) or die("Could not update".mysql_error());
echo "<meta http-equiv='refresh' content='0;url=testaddboat.php'>";
}
?>
<table class="centerwithroom">
<form action="testeditboat.php" method="POST">
<tr>
<td>New Broker Name </td><td>
<select name='newbrokername'>
<?php
while ($brokerlistrow = mysql_fetch_array($brokerlistquery)) {
?>
<option value="<?php echo $row[brokername]; ?>" <?php if ($row[brokername] == $brokerlistrow[id]) { echo selected; } ?> ><?php echo $brokerlistrow[name]; ?></option>
<?php } ?> </select>
</td>
<tr>
<td>Boat Name:</td><td><input type="text" name="newboatname" value="<?php echo $row[boatname]; ?>"/></td>
</tr>
</tr>
<td></td><td><input type="submit" value=" Update "/></td>
</tr>
<input type="hidden" name="id" value="<?php echo $row[id]; ?>"/>
</form>
</table>
感謝您的迴應,我試着改變兩者。當我改變id來命名時,它會丟失選擇的選定焦點,並只顯示列表中的第一個名字,而不是數據庫中的名字。此外,即使船名字段將更新,該字段仍不會更新。 謝謝你的所有建議:)還有什麼我們可以嘗試? –
'$ row [brokername]'和'$ brokerlistrow [id]'的值是什麼? – Deepak
'print_r($ row)'的值是什麼? – Deepak