多くの例が関連していましたが、私はまだ混乱しています。私はxxx秒ごとに更新されたファイルの結果を得るためにajax(私はあまり知らない)を使用しています。変数を1つだけ渡すと完全に動作しますが、PHPから配列を渡す必要がある場合はどうすればよいでしょうか?javascriptに変数としてPHP配列を渡してurlをロードし、PHP配列に戻しますか?
構造は最も単純な:
show_results.php
<?php
include_once('modWhosonlineCustom.inc.php');
$document->addScript("http://code.jquery.com/jquery-latest.js");
$document->addScript("ajax.js");
$array_name = modWhosonlineCustom::getOnlineUserNames();//the array I need to pass to javascript variable
?>
<script>
var whosonline = '<?php echo "$array_name"; ?>';
</script>
<div id="results"></div>
URL負荷に構築するために複数のparam持っているだろうより
Ajaxコード:どのように私は再び使用することができ、バックPHPの応答ページへ
ajax.js
$(document).ready(function() {
$("#results").load("response.php?array_name[param1]&array_name[param2]");
var refreshId = setInterval(function() {
$("#results").load("response.php?array_name[param1]&array_name[param2]&randval="+ Math.random());
}, 10000);
$.ajaxSetup({ cache: false });
});
とを配列のパラメータはurlを渡しますか?
response.php
<?php
$names = $_GET['array_name'];
foreach ($names as $name) {
//do something
何か提案は本当に感謝しています!
EDIT
みんなありがとう、私は今、正しい道だと思いますが、JavaScriptでURLを通じてこの配列を渡す問題をramains。あるいは、私はPHPエンドコールバックファイルの正しい方法でそれを取得していないでしょう。私はmodifyed何を紹介します:警告:ここで私が取得しています、他の側で
show_results.php
...
<?php
$names = modWhosonlineCustom::getOnlineUserNames();
?>
<script>
var whosonline = '<?php echo "json_encode($names)"; ?>';
</script>
ajax.js
$(document).ready(function() {
$("#atendentes").load("response.php?names=" + whosonline);
var refreshId = setInterval(function() {
$("#atendentes").load("response.php?names=" + whosonline + "&randval="+ Math.random());
}, 10000);
$.ajaxSetup({ cache: false });
});
response.php
$users = $_GET['names'];
$users = json_decode($users);
echo "user: $users";
$names = $users;
foreach ($names as $name) {
...
ライン33にresponse.phpでのforeach()のために供給無効な引数、およびエコーが空である
何が欠けていますか?
ありがとうございました!私はマニュアルを辿ってスクリプトを修正しましたが、javascriptによって生成されたURLから配列を再度取得する方法については今問題があります。編集した質問をご覧ください、ありがとうございます! – Adry