再會!StackOverFlow 社區我有下面提到的代碼,其中 Multi-Dependent Dropdown 顯示資料。當我嘗試在MYSQL DB中插入時,只插入了ID而不是名稱,而我正在插入名稱我肯定在某處犯了錯誤,需要您的寶貴指導
謝謝
<?php
require_once ("DBController.php");
$db_handle = new DBController();
$query = "SELECT * FROM categories";
$countryResult = $db_handle->runQuery($query);
?>
<html>
<head>
<TITLE>Dynamically Load Dependent Dropdown on Multi-Select using PHP and
jQuery</TITLE>
<head>
<style>
body {
width: 610px;
font-family: calibri;
}
.frmDronpDown {
border: 1px solid #7ddaff;
background-color: #C8EEFD;
margin: 2px 0px;
padding: 40px;
border-radius: 4px;
}
.demoInputBox {
padding: 10px;
border: #bdbdbd 1px solid;
border-radius: 4px;
background-color: #FFF;
width: 50%;
}
.row {
padding-bottom: 15px;
}
</style>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"
type="text/javascript"></script>
<script>
function getState() {
var str='';
var val=document.getElementById('country-list');
for (i=0;i< val.length;i ) {
if(val[i].selected){
str = val[i].value ',';
}
}
var str=str.slice(0,str.length -1);
$.ajax({
type: "GET",
url: "get_state.php",
data:'country_id=' str,
success: function(data){
$("#state-list").html(data);
}
});
}
</script>
</head>
<body>
<div class="form-group" style="font-family:arial;">
<label for="landnumber">Land Number:</label><b><label style="float:right;">??? ?????</b></label>
<select dir="rtl" lang="ar" id='landnumber' name='landnumber' class="form-control" required>
<option disabled selected>-- ??? ????? --</option>
<?php
include "connect.php"; // Using database connection file here
$records = mysqli_query($db, "SELECT landnumber From landnumbers"); // Use select query here
while($data = mysqli_fetch_array($records))
{
echo "<option value='". $data['landnumber'] ."'>" .$data['landnumber'] ."</option>"; // displaying data in option menu
}
?>
</select>
</div>
<br />
<form method="post" action="">
<div class="frmDronpDown">
<div class="row">
<label>Categories - ????????? </label><br /> <select name="country[]"
id="country-list" class="demoInputBox"
onChange="getState();" multiple size=4>
<option value="">Select Categories</option>
<?php
foreach ($countryResult as $country) {
?>
<option value="<?php echo $country["id"]; ?>"><?php echo $country["name"]; ?></option>
<?php
}
?>
</select>
</div>
<div class="row">
<label>Activities - ???????</label><br /> <select name="state[]"
id="state-list" class="demoInputBox" multiple size=5>
<option value="">???????</option>
</select>
</div>
<input type="submit" name="submit" id="action" class="btn btn-info" value="Insert" />
</form>
</div>
</body>
</html>
<?php
if(isset($_POST['submit'])){
require('connect.php');
$state_string = implode(', ', $_POST['country']);
$sql = '
INSERT INTO
`chosen_activities` (
`name`
)
VALUES (
"'. $state_string .'"
)';
mysqli_query($db,$sql);
}
?>
下面這行代碼僅插入 ID 而不是名稱,我想插入名稱
<option value="<?php echo $country["id"]; ?>"><?php echo $country["name"]; ?></option>
謝謝
我試過的
<option value="<?php echo $country["name"]; ?>"><?php echo $country["name"]; ?></option>
我已將 id 更改為 name 但隨后其他下拉串列不會填充,因為它僅通過 ID 填充。你可以看到上面的 AJAX 帶來了 get_state
uj5u.com熱心網友回復:
根據你的資訊,我知道你是想插入一個名字而不是一個ID,希望你在mysql對應表中使用ID作為int,這里你要知道Int只允許插入數字,所以你必須創建一個名稱欄位的單獨列,或者您必須更改 Id 列的資料型別以允許插入。
對于良好的實踐,您的多依賴下拉串列將 id 保留為外鍵
uj5u.com熱心網友回復:
更改 $country['name'] 中的值
<option value="<?php echo $country["name"]; ?>"><?php echo $country["name"]; ?></option>
uj5u.com熱心網友回復:
在select輸入中,所選選項的值在表單提交時提交給后端。
因此,如果您想提交名稱而不是 id,則只需更改options.
<option value="<?php echo $country["name"]; ?>"><?php echo $country["name"]; ?></option>
這將提交名稱。
或者,您可以提交 ID 并在 PHP 端運行單獨的 SQL 查詢以獲取名稱。
<option value="<?php echo $country["id"]; ?>"><?php echo $country["name"]; ?></option>
然后您可以訪問 $_POST['country-list'] 中的變數并運行選擇查詢以從資料庫中獲取名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/365704.html
上一篇:如何加入多條件查詢mysql
