2016-09-09 10 views
2

私はこれを深く掘り下げましたが、答えを見つけられないようです。ほとんどの答えは、言語内でクッキーを設定して検索する方法を示します。PHP配列をクッキーに渡してjQueryで取得します

PHPの配列をクッキーに渡し、ドロップダウンメニューのオプションを動的に設定できるように、jqueryを使って別のページの内容を取得する必要があります。 (標準のselectではなく、ブートストラップのドロップダウンメニューのために)私はPHP配列が存在することを確認するためにそれをエコーし​​ています。

jquery cookieプラグインを使用しています。

PHPスニペット:

while ($row = mysql_fetch_assoc($result)) { 
    //Get Dropdown options 
    $wnDropdown[] = '<li value=' . $row['id'] . '>' . $row['name'] . '</li>'; 
} //end while 

      mysql_close(); 
     } //end inner if 
    } //end else 

    //Cookie needed 
    setcookie("wnDropdown", json_encode($wnDropdown)); 

jQueryのは:

$(document).ready(function() { 
    var result = JSON.parse($.cookie('wnDropdown')); 
    alert(result); 
}); 

結果は 'null' を返し警告しました。

私には何が欠けていますか?

詳細情報が必要な場合は、お知らせください。

答えて

2

私はあなたがクッキーのプラグインがjqueryの後にそれをロードするために、最高のロードされていることを確認し

  • を確認したいいくつかのポイントがあります。
  • setcookieの前の空白については、バッファリングの設定がバッファリングの設定に依存していて、どこにでも何かを置くことができ、どこでもエコーを送信することができます。 <style><html>in short anythingあなたのphpコードが問題を引き起こす可能性が高い前に来る。値が「オフ」でなく、ここではっきりしていない場合は、php.ini output_buffering=valueをチェックしてください。 <?php ?>の中の空白は、setcookie()の前に来ればecho、print_rなどの表示機能には関係しないことに注意してください。
  • また、$wnDropdownのスコープを確認して、グローバルであり、setcookieを呼び出すときに値が存在することを確認してください。
+0

これはスコープで、他の '$ row'値に' $ _SESSION'変数を使用していて、他の '$ _SESSION'変数もクッキーに格納していました。キャッチをありがとう! –

関連する問題