至 " > 现在它显示了正确的选择名称,并且实际上在数据库中保存了更改的值,但是,它保-6ren">
gpt4 book ai didi

php - 如何在php的编辑表单中填充下拉框

转载 作者:行者123 更新时间:2023-11-30 01:07:08 26 4
gpt4 key购买 nike

更新至以下内容:

我对代码做了一些修改,并取得了一些成功,但我仍然对一件事不感兴趣。我改变了线路

<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 给我:

数组 ( [0] => 4 [id] => 4 [1] => 6 [经纪人名称] => 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 编辑表单来编辑正常工作的经纪列表表。我的问题出在我称为testitboat.php 的表单中。我想做的是允许用户使用从 mysql 表brokerlist 填充的下拉框更改testitboat.php 表单中的字段brokername,但也使用当前条目的选择。

我的表单当前的状态是提交请求并将更改boatname 字段中的任何值,但不会更新brokername 字段。

预先非常感谢大家的帮助,希望我的描述足够详细。

我的testeditboat.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>

最佳答案

更改以下行:

$row= mysql_fetch_assoc($res); //this fetches the array in associative mode

更改以下行:

<option value="<?php echo $row[brokername]; ?>" <?php if ($row[brokername] == $brokerlistrow[name]) { echo selected; } ?> ><?php echo $brokerlistrow[name]; ?></option>

您比较 $row[brokername] == $brokerlistrow[id] 这似乎是不正确的。您必须比较 $row[brokername] == $brokerlistrow[name]

注意:停止使用 mysql_* 扩展,改用 mysqli_*

关于php - 如何在php的编辑表单中填充下拉框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19669563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com