簡體   English   中英

將 PHP 數組傳遞給 AJAX(成功)函數

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

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