簡體   English   中英

從ajax調用中獲取數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM