从查询填充表单字段只显示第一个字
问题描述:
我有一个表单填充与查询结果的字段,并允许我更新任何字段。我的问题是,任何给定的字段将只显示该记录的该列中的第一个单词。如果我在字段中输入某些内容,它会“更新”记录,但只显示第一个单词。这是我的。从查询填充表单字段只显示第一个字
<html>
<body>
<?php
$con = mysql_connect("localhost","db_username","db_pw");
{
}
mysql_select_db("db_name",$con);
if (isset($_POST['update'])){
$UpdateQuery = "UPDATE db_table SET Name='$_POST[Name]', Email='$_POST[Email]', ID='$_POST[ID]', Notes='$_POST[Notes]' WHERE ID='$_POST[Hidden]'";
mysql_query($UpdateQuery, $con);
};
$sql = "SELECT * FROM db_table ";
$mydata = mysql_query($sql,$con);
echo "<table border='1'>
<tr>
<th>Name</th>
<th>Email</th>
<th>Member Number</th>
<th>Notes</th>
</tr>";
while($row = mysql_fetch_array($mydata))
{
echo "<form action=updaterec.php method=post>";
echo "<tr>";
echo "<td>" . "<input type=text name=Name value=" . $row['Name'] . " ></td>";
echo "<td>" . "<input type=text name=Email value=" . $row['Email'] . " ></td>";
echo "<td>" . "<input type=text name=ID value=" . $row['ID'] . " ></td>";
echo "<td>" . "<input type=text name=Notes value=" . $row['Notes'] . " ></td>";
echo "<td>" . "<input type=hidden name=Hidden value=" . $row['ID'] . " ></td>";
echo "<td>" . "<input type=submit name=update value=update" . " ></td>";
echo "</form>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
</body>
</html>
答
的问题是因为你没有包裹在双引号中的价值,正在为<input name=john smith>
代替<input name="john smith">
,这将整个包住值的输入字段,然后成为有效生成的HTML。
所以,因为你使用双引号,你需要使用\"
...
value=" . $row['Name'] . "
...应该成为...
value=\"" . $row['Name'] . "\"
你应该一直检讨源PHP在浏览器(而不仅仅是完成的dom)中生成问题后生效的代码。
我也看看逃脱你的价值观。
完整的解决方案:
while($row = mysql_fetch_array($mydata))
{
echo "<form action=updaterec.php method=post>";
echo "<tr>";
echo "<td><input type=text name=Name value=\"" . htmlentities($row['Name']) . "\" ></td>";
echo "<td><input type=text name=Email value=\"" . htmlentities($row['Email']) . "\" ></td>";
echo "<td><input type=text name=ID value=\"" . htmlentities($row['ID']) . "\" ></td>";
echo "<td><input type=text name=Notes value=\"" . htmlentities($row['Notes']) . "\" ></td>";
echo "<td><input type=hidden name=Hidden value=\"" . htmlentities($row['ID']) . "\" ></td>";
echo "<td><input type=submit name=update value=\"update\" ></td>";
echo "</form>";
echo "</tr>";
}
附加:另外,单引号可以帮助避免混淆,当你不需要解析变量。
echo '<td><input type="text" name="Name" value="' . htmlentities($row['Name']) . '" ></td>';
+1
完美的工作谢谢。 – PCMedicJAX
鲍比桌是为你而来http://bobby-tables.com/ – miknik
这将在密码保护目录。我将是唯一使用它的人。 – PCMedicJAX