Returning an array from javascript to php variable

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
Hello Everyone,
I'm trying to read a dynamic table into an array and then return it
back to the php array so that I can register that for the session. I'm
not too sure if i'm going in the right direction though. Javascript

 function get_ticket_cart(){
      var tamt = document.getElementById('tamt');
      var tcells = tamt.cells;
      var total = tcells[tcells.length-1];
      return tcells;

And I'm trying to do this on onClick of the form. Php code follows

$tickets = array();
<input type="submit" value="Pay Dues" onclick="<? $tickets ?> =
get_ticket_cart();" >

$_SESSION['tickets'] = $tickets;

I could be wrong in trying to catch the return value. But the problem
is this needs to be done on the click event.

Any suggestions are appreciated.  


Re: Returning an array from javascript to php variable

Srinivas Aki wrote:

Quoted text here. Click to load it

I doubt you have understood how PHP works.  At first you need to understand
that _server-side_ PHP code is parsed _before_ it gets to the client.  


Second, provided that short_open_tag=on in php.ini -- which it should not
be, see <URL: --, the above code would generate
nothing but

<input type="submit" value="Pay Dues" onclick=" = get_ticket_cart();" >

`$tickets' would refer to the PHP array, and using it in this way results in
the empty string.  (RTSL -- Read The Source, Luke; the source the _client_
gets.)  Ignoring that the generated event listener code is of course
syntactically incorrect JS/ECMAScript code.

If you want to submit data to the server and so fill the PHP array, you will
have to do a HTTP request addressing a PHP script that will fill it; that
requires at least a URL.  An (X)HTML form could be used; it would result in
displaying the server's response unless the server responds with HTTP
status code 204 (No Content).  But then you should use the `onsubmit'
intrinsic event handler of the `form' element instead.  Or, as an
alternative to forms, you could submit the data another way, including



Re: Returning an array from javascript to php variable

Srinivas Aki wrote:
Quoted text here. Click to load it

Well, since the table is dynamically generated, there obviously is a
time when you're in possession of the data that populates it. Why not
just add this data to a hidden field at time the same time as you're
generating a new row? Personally, I like to just keep the data in an
array, then redraw the whole table every time it changes. Makes it
easier when you need to remove an item.


var tickets = Array();

function add_ticket(id) {

function refresh_table() {
  var html = '';
  for(var i = 0; i < tickets.length; i++) {
     html += '<html here>';
  table.innerHTML = html;

function save_to_hidden() {
  hidden.value = tickets.join(',', tickets);

Re: Returning an array from javascript to php variable

["Followup-To:" header set to comp.lang.javascript.]
Quoted text here. Click to load it

client side javascript does not run synchronously with server side PHP.
your PHP has syntax errors.

how are you communicating with the browser? regular form submission or
something else?


Site Timeline