[英]get data from ajax call
我有一個選擇框,我可以在其中選擇我的客戶,每個客戶可以有 1 個或多個站點,因此當您更改客戶選擇時,站點選擇框也應該更改,但主要問題是我無法用選項填充站點選擇框.
我認為這應該是返回數組或其他東西的最佳方式。
嘗試將這樣的內容添加到您的 ajax 成功中:
var dropdown = document.getElementById('SiteDropDown');
options.forEach(function(element))
{
dropdown.options[dropdown.options.length] = new Option(element, '', false, false);
});
基本上創建一個包含您想要顯示的信息的數組是一個好主意。 但是您也應該嘗試在選擇上使用一個值。 因此,當您選擇一個選項時,系統將知道它的 ID。 -> dropdown.options[dropdown.options.length] = new Option(element, 'ID of Array Element', false, false);
我花了一點時間,但寫了一些可能有用且簡單的東西。 此外,如果您使用 AJAX,您真的不需要表單標簽。 您可以使用潛水創建表單並使用 JQuery 函數觸發 AJAX 以將數據發送到數據庫。
主要的 PHP 來填充你的第一個下拉菜單。
<?php
include_once("../Services/Mysql.php");
$result = $conn->query("SELECT klant_firmanaam, id From connectprolivedesk.klanten where reseller_klantnr = '5375' order by klant_firmanaam");
?>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<div class="form-group">
<select name="klantenDropDown" id="klantenDropDown" class="form-control">
<option value="" selected hidden disabled>Select Klant</option>
<?php
if($result->num_rows > 0){
while($row = $result -> fetch_assoc()){
echo "<option value=".$row["id"]." >".$row["klant_firmanaam"]."</option>";
}
}
?>
</select>
</div>
<div class="form-group">
<select name="SiteDropDown" id="SiteDropDown" class="form-control" >
<option value="" selected disabled hidden>Select Site</option>
</select>
</div>
</div>
</body>
這個 PHP 將接收 AJAX post 變量並回顯將填充第二個下拉列表的選項。
include_once("../Services/Mysql.php");
$result = $conn->prepare("SELECT site_naam FROM connectprolivedesk.sites WHERE klant_id = ?");
$result -> bind_param("s",$_POST["klantId"]);
$result -> execute();
while($row = $result -> fetchAll()){
echo "<option value=".$row['sId'].">".$row['site_name']."</option>:
}
此代碼用於您的 AJAX,它將您設置的 kalntId 發送到您的第一個下拉列表的上述第二個 PHP onChange。 ajax 會將選定的客戶端 ID 發送到 PHP,以便您可以只為該客戶端整理站點。 然后將捕獲回顯的輸出並將它們作為選項插入到第二個下拉列表中。
<script>
$(document).ready(function(){
$('#klantenDropDown').on('change', function(){
$.ajax({
url: 'getSites.php',
type: 'post', //You can use get or post
data: {
'klantId':$(this).val()
},
dataType:'text',
complete:function(data){
if(data){
$('#SiteDropDown').html(data.responseText);
}
}
}
}
</script>
希望這對您或任何其他人有幫助。
PS:如果我的代碼中有任何錯誤,請告訴我,我不是一個大的 mysqli_* 用戶。 我還使用了准備好的語句,其中第二個 PHP 綁定了更安全並防止 SQL 注入的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.