所以我有一系列从資料庫檢索的記錄.陣列的格式;
$rows[0]['id']=1;
$rows[0]['title']='Abc';
$rows[0]['time_left']=200;
$rows[1]['id']=2;
$rows[1]['title']='XYZ';
$rows[1]['time_left']=300;
//And so on upto 10-20 rows
將這个陣列轉移到我的javascript代碼中的最佳方法是什麼? 我希望javascript能够遍歷所有記錄,並使用'id'屬性,使用一些資訊使用该ID更新div.
我的javascript代碼在外部.js檔案中,但是我可以在頁面的HTML代碼中執行php代碼.所以我可以做這樣的事情:
In my_file.js:
var rows=New Array();
In HTML code:
<html>
<head>
<script type="text/javascript" src="js/my_file.js"></script>
<script type="text/javascript">
<? foreach ($rows as $row):?>
<? extract($row);?>
rows[<?=$id;?>]['title']="<?=$title;?>";
//And so on
<? endforeach;?>
</script>
最新回復
- 5月前1 #
- 5月前2 #
如果您正在處理內聯資料,我一直很類似
<script type="text/javascript"> window.sitescriptdata = {}; window.sitescriptdata.foo = ( <?php echo json_encode( $structure ); ?> ); </script>
對於基本內容,省去了執行AJAX回撥的麻煩.另外,如果您想將資料粘贴到DOM节點,"元物件"方式也是我真正類似的方式.
<div id="foobar"> <div><object class="metaobject"> <param name="data" value="<?php echo htmlentities(json_encode($data), ENT_QUOTES );?>" /> </object></div> </div>
現在,這看起来可能不太好,但是它是直接將資料与DOM节點關聯的有效方法,而無需知道到该节點的確切唯一路徑.如果您有许多資料集需要附加到特定的螢幕元素,則非常方便.
我通常使用jQuery的http://noteslog.com/metaobjects/插件,但是它是如此的簡單以至於我有時自己寫了它(有一段時間我找不到该插件,但是它是如何工作的)
完成後,將
$(" div#foobar>div")。get()。data。($ yourarray此處)
對您的代碼可见.
- 5月前3 #
要跟进您的問题(我的答複,我在評論答複中没有足够的空間),這是我使用的代碼的非常簡化的子集:
jQuery中的Javascript AJAX處理程式:
$.ajax({ type: "POST", url: "BACKEND.php", timeout: 8000, data: "var1=" + myVar, dataType: "json", error: function(){ $("#DIVID").html("<div class='error'>Error!</div>"); }, success: function(jsonObj){ $("#DIVID").html(jsonObj.mydata); } }); PHP Array: $data['mydata'] = $myData;
- 5月前4 #
在像這樣的AJAX示例中,您可以通過以下方式解決此問题:
.php檔案(ajax返迴函式)
$myArray = array("object_id"=>1, "object_title"=>"Testobject"); return json_encode($myArray);
.js檔案(javascript函式)
... if(g_httpRequest.readyState == 4) { var jsonRes = JSON.parse(g_httpRequest.responseText); alert(jsonRes.object_title) } ...
- 5月前5 #
im還是很新,也說這種方法不是最安全的,但是您始终可以將javascript陣列轉換為字元串,然後將其通過php的URL傳遞给GET。
如此:
for(var i=0;i < jsarray.length;i++) { var x = jsarray[i]; urlstring += "myvalue[]="+x+"&"; } document.location.href = "mypage.php?"+urlstring;
然後php將是:
$phparray = $_GET['myvalue'];
希望有帮助
相似問題
- javascript:AJAX jQuery每5秒重新整理一次divjavascriptphpjqueryajax2021-01-11 22:56
- php:將JSON物件發佈到Symfony 2phpajaxjsonsymfony2021-01-11 23:58
- javascript:在路由中執行run的同時从Angularjs的URL中删除#javascriptphpangularjslaravelangularjsdirective2021-01-11 19:54
- php:UTF-8字元編碼与json_encode()战斗phpmysqlajaxcharacterencodingjson2021-01-11 16:58
我倾向於為此使用JSON物件:
On the server side, JSON encode your data:
json_encode($data);
在JavaScript方面,我編寫了一个將JSON物件作為引數並將其解壓縮的函式。
解壓縮物件時,可以將陣列的內容print到
<DIV>
中 標記,或您希望在頁面上的任何位置(jQuery做得很好)。