簡體   English   中英

將mySQL數據庫信息放入JavaScript數組

[英]Putting mySQL Database Information into a JavaScript Array

我想做的是通過獲取數據庫信息並將其放入javascript數組來創建幻燈片。 我目前正在使用jquery ajax函數從單獨的php文件中調用信息。 這是我的PHP代碼:

mysql_connect('x', 'x', 'x') or die('Not Connecting');
mysql_select_db('x') or die ('No Database Selected');

$i = 0;
$sql = mysql_query("SELECT comicname FROM comics ORDER BY upldate ASC");

while($row = mysql_fetch_array($sql, MYSQL_ASSOC)) {
echo "comics[" .$i. "]='comics/" .$row['comicname']. "';";
$i++;
}

我想要的是通過mysql查詢在php中創建數組,然后能夠使用javascript引用它以構建簡單的幻燈片腳本。 如果您有任何疑問或建議,請告訴我。

確定您的.php echo json_encode('name of your php array');

然后在javascript端,您的ajax應該看起來像這樣:

$.ajax({
        data:       "query string to send to your php file if you need it",
        url:        "youphpfile.php",
        datatype:   "json",
        success:    function(data, textStatus, xhr) {
                        data = JSON.parse(xhr.responseText);
                        for (i=0; i<data.length; i++) {
                        alert(data[i]); //this should tell you if your pulling the right information in

                        }
        });

也許將data.length替換為3或如果您有很多數據的話...如果您獲得正確的數據,請使用yourJSArray.push(data [i]); 我相信實際上還有更直接的方法...

您可能需要將所有行提取到一個大數組中,然后將其編碼為JSON

$ret = array();
while($row = mysql_fetch_array($sql, MYSQL_ASSOC))
        $ret[] = $row
echo json_encode($ret);

然后,在客戶端上,調用如下代碼:

function mycallback(data)
{
        console.log(data[0].comicname); // outputs the first returned comicname
}

$.ajax
        (
        {
        url: 'myscript.php',
        dataType: 'json',
        success: mycallback
        }
        );

成功完成請求后,將調用mycallback並傳遞一組映射,每個映射代表結果mycallback一條記錄。

從您的問題很難說出來,但這聽起來像:

  1. 您正在用JS對服務器進行AJAX調用
  2. 您的服務器(使用PHP)響應結果
  3. 當結果返回時,jQuery調用您傳遞給它的回調...
  4. 此時您迷路了? 即。 將這些AJAX結果放入數組以便幻燈片可以使用它們的意義是什么?

如果是這樣,則解決方案非常簡單:在AJAX回調中,將結果放入全局變量(例如window.myResults = resultsFromAjax;),然后在要開始幻燈片放映時引用該變量。

但是,由於時間安排可能是個問題,所以更有意義的是實際上是從回調內部開始幻燈片放映。 另外,該方法不需要全局變量。

如果這不是您遇到的問題,請發布更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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