![](/img/trans.png)
[英]How to insert selected value from dropdown list into another MySQL table
[英]Create a dropdown list from one table and entering selected value into another table (same MySQL DB)
我試圖顯示存儲在mySQL數據庫的查找表中的所有國家(“國家”)的下拉列表,讓用戶選擇他的國家,然后將該數字輸入會員列表。
下面的代碼實際上用新記錄更新了成員表,但是輸入到land列的值是字符串“ $ landselect”(不是相應的/選定的國家/地區名稱)。
我懷疑在HTML部分的SELECT語句和PHP部分的INSERT語句之間傳遞所選值(即國家/地區名稱)的方式出了問題,但是我無法理解關於如何將正確的值(選定的國家名稱)傳遞給INSERT語句。
任何想法和評論表示贊賞。
<html>
<head>
</head>
<body>
<form action="Medlem 140112b.php" method="POST">
Username: <input type="text" name="username"><br />
Password: <input type="text" name="password"><br />
Personnummer: <input type="text" name="personnummer"><br />
First name: <input type="text" name="firstname"><br />
Last name: <input type="text" name="lastname"><br />
Postadress1: <input type="text" name="postadress1"><br />
Postadress2: <input type="text" name="postadress2"><br />
Postnummer: <input type="text" name="postnummer"><br />
Ort: <input type="text" name="ort"><br />
<!---Land: <input type="text" name="land"><br />--->
Land: <SELECT name="land"> <OPTION VALUE=0>Choose
<?php
$con = mysql_connect("localhost","root","");
mysql_select_db ("cf", $con);
$result = mysql_query("SELECT Land FROM land",$con);
while($row = mysql_fetch_array($result))
{
$landselect=$row["Land"];
echo '<OPTION VALUE=\'$landselect\'>'.$landselect.'</OPTION>';
}
mysql_close ($con); //stänger connectio till DB system;
?>
</SELECT>
<br />
Epost: <input type="text" name="epost"><br />
Telefon: <input type="text" name="telefon"><br />
TC_approval: <input type="text" name="tc_approval"><br />
<input type="submit" name="submit">
</form>
<?php
$con = mysql_connect("localhost","root","");
mysql_select_db ("cf", $con);
if (mysql_error())
{
echo "Failed to connect to MySQL: " . mysql_error();
} else echo "Koppling till DB gick bra!";
if (isset ($_POST['submit'])) {
$sql = "INSERT INTO medlem(Username, Password, Personnummer, Firstname, Lastname, Postadress1, Postadress2, Postnummer, Ort, Land, Epost, Telefon, TC_approval) VALUES('$_POST[username]','$_POST[password]','$_POST[personnummer]','$_POST[firstname]','$_POST[lastname]','$_POST[postadress1]','$_POST[postadress2]','$_POST[postnummer] ','$_POST[ort]','$_POST[land]','$_POST[epost]','$_POST[telefon]','1')";
echo $sql;
mysql_query($sql, $con); //Exekverar tabellskapandet;
}
mysql_close ($con); //stänger connectio till DB system;
?>
</body>
</html>
更改此行:
echo '<OPTION VALUE=\'$landselect\'>'.$landselect.'</OPTION>';
至
echo '<OPTION VALUE=\'' . $landselect . '\'>'.$landselect.'</OPTION>';
如果使用雙引號,則您當前的代碼將起作用,但是單引號不是魔術引號。
代替
echo '<OPTION VALUE=\'$landselect\'>'.$landselect.'</OPTION>';
嘗試這個
echo "<OPTION VALUE='$landselect'>$landselect</OPTION>";
並且也嘗試使用mysqli_real_escape_string()
。 您當前的代碼易於進行sql注入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.