A community in which webmasters can ask for help with topics such as PHP coding , MySQL , IT jobs, web design, IT security.
Current location:homephp forumphp talk in 2008 yearBest way to transfer an array between PHP and Javascript [duplicate] - page 1
User InfoPosts
Best way to transfer an array between PHP and Javascript [duplicate]#1
This question already has an answer here:


How to pass variables and data from PHP to JavaScript?

13 answers




So I have an array of records retreived from a database. The array is in the format;

$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


What's the best way of transferring this array over to my javascript code? I'd like the javascript to be able to loop through all of the records, and using the 'id' attribute, update the div with that id with some information.

My javascript code is in an external .js file, but i'm able to execute php code in the HTML code of my page. So I could do something like this:

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>

posted date: 2008-12-25 20:39:00


Re: Best way to transfer an array between PHP and Javascript [duplicate]#2
I had made out the solution of this problem. click to view my topic...

hope that hepls.

posted date: 2008-12-25 20:39:01


Re: Best way to transfer an array between PHP and Javascript [duplicate]#3
I tend to use a JSON object for this: On the server side, JSON encode your data: json_encode($data);On the JavaScript side, I write a function that takes a JSON object as a parameter and unpack it.When you unpack the object, you can print the array's contents into a <DIV> tag, or where ever you would like on the page (jQuery does a pretty sweet job of this).

posted date: 2008-12-25 21:08:00


Re: Best way to transfer an array between PHP and Javascript [duplicate]#4
How do you unpack the JSON object with javascript? Can you add some sample code for that and a sample of the unpacked object to your answer please? Thanks

posted date: 2008-12-25 21:17:00


Re: Best way to transfer an array between PHP and Javascript [duplicate]#5
To follow up to your question (and my reply, I ran out of space on the comment reply), here is a very simplified subset of the code I use:Javascript AJAX handler in jQuery:$.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;

posted date: 2008-12-25 21:31:00


Re: Best way to transfer an array between PHP and Javascript [duplicate]#6
Check this out: ditio.net/2008/07/17/php-json-and-javascript-usage

posted date: 2008-12-25 21:34:00


Re: Best way to transfer an array between PHP and Javascript [duplicate]#7
If you're doing inline data, I've always been fond of doing <script type="text/javascript">window.sitescriptdata = {}; window.sitescriptdata.foo = ( <?php echo json_encode( $structure ); ?> );</script>For basic stuff, saves you doing an AJAX callback. Also, if you want to glue data to a DOM node, the "metaobject" way is something I really love. <div id="foobar"> <div><object class="metaobject"> <param name="data" value="<?php echo htmlentities(json_encode($data), ENT_QUOTES );?>" /> </object></div></div>Now this may not look great, but its an effective way of associating data directly with a DOM node without needing to know the exact unique path to that node. Very handy if you have many many datasets that need to be attached to specific screen elements. I usually use http://noteslog.com/metaobjects/ plugin for jQuery, but its so simple I have on occasion written it myself ( there was a time I couldn't find the plugin, but new how it worked )When done, there will be $("div#foobar > div").get().data.($yourarrayhere) Visible to your code.

posted date: 2008-12-25 21:52:00


Re: Best way to transfer an array between PHP and Javascript [duplicate]#8
Final question. I gave it a try and I now get an 'object' in javascript which contains each of my rows, so I think I would access it as myObj[0].title or myObj[1].title. The prob is, if I want to get the title of something by its ID, how can i find it. The id would be in myObj[1].id or myObj[0].id

posted date: 2008-12-25 22:05:00


Re: Best way to transfer an array between PHP and Javascript [duplicate]#9
Argh, my apologies for the terrible formatting there.

posted date: 2008-12-25 22:37:00


Re: Best way to transfer an array between PHP and Javascript [duplicate]#10
Actually i wanted to know, that if I have the ID of a row but not the array index how can I identify it without having to loop through all the rows. I.e: i want myObject[X].title where myObject[X].id=4. Here X is what I want. Btw, i'm accepting ur answer cuz u already helped a lot :)

posted date: 2008-12-25 22:51:00


Re: Best way to transfer an array between PHP and Javascript [duplicate]#11
MooTools also does JSON encode/decode: mootools.net/docs/core/Utilities/JSON

posted date: 2010-02-23 21:40:00


Re: Best way to transfer an array between PHP and Javascript [duplicate]#12
im still fairly new too say maybe this method isnt the most secure, but you can always turn your javascript array into a string and then pass it through the URL for the php to GET.so:for(var i=0;i < jsarray.length;i++) {var x = jsarray[i];urlstring += "myvalue[]="+x+"&";}document.location.href = "mypage.php?"+urlstring;and then the php would be:$phparray = $_GET['myvalue'];hope that helps

posted date: 2012-05-10 04:03:00


select page: « 1 2 »
Copyright ©2008-2017 www.momige.com, all rights reserved.