[英]Passing PHP Array to AJAX (Success) Function
我想在 AJAX 調用的成功函數中將數組傳遞給我的 AJAX 函數。 這個數組是我的數據庫中使用global $wpdb;
因為這很容易使用,而且我知道如何使用。 有沒有辦法將此數組傳遞給 AJAX 函數? 或者有沒有辦法在 AJAX 中獲取數據?
我在我的腳本標簽中得到了這個並且它正在工作:
jQuery(document).ready(function(){
jQuery('#date-select').on('change',function(){
var seldate= jQuery(this).val();
if(seldate!=''){
var seldateEdited = seldate.replace("T", " ");
jQuery.ajax({
type:'POST',
url:'http://esr-berlin.de/wp-admin/admin.php?page=einteilung_erstellen',
data:'var='+seldate,
success:function(html){
var output = '<option value="">Wähle HSR1</option>';
jQuery.each(html.data, function(i,s){
var newOption = s;
output += '<option value="' + newOption + '">' + newOption + '</option>';
});
jQuery('#hsrPop').empty().append(output);
}
});
}
});
});
編輯
我忘記了一些重要的事情。 對於數組或特別是對於 sql 查詢,我需要一個我在 javascript 中擁有的變量。 所以我基本上需要另一個 AJAX 調用,對嗎? 我該怎么做?
您可以在 PHP 文件中對數組進行編碼並返回它。 它只會向您的 AJAX 函數返回一個字符串
json_encode($array)
https://www.php.net/manual/en/function.json-encode.php
然后您可以使用將其轉換為 Javascript 數組進行處理
JSON.parse(json)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
假設您的服務器端代碼(admin.php)類似於:-
$result = array();
//your code here to fetch data dynamically
$result['status'] = True; //based on your conditions optional
$result['data'] = array(0=>"option1",1=>"option2",2=>"option3") ;
echo json_encode($result);
希望這會有所幫助。
jQuery(document).ready(function()
{
jQuery('#date-select').on('change',function()
{
var seldate= jQuery(this).val();
if(seldate!='')
{
var seldateEdited = seldate.replace("T", " ");
jQuery.ajax({
type:'POST',
dataType:'json', //added to receive json format data
url:'http://esr-berlin.de/wp-admin/admin.php?page=einteilung_erstellen',
data:'var='+seldate,
success:function(html)
{
//here you can check if html.status is True/False .. optional
var output = '<option value="">Wähle HSR1</option>';
jQuery.each(html.data, function(i,s)
{
var newOption = s;
output += '<option value="' + newOption + '">' + newOption + '</option>';
});
jQuery('#hsrPop').empty().append(output);
}
});
}
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.