Invio di più parametri di dati con jQuery AJAX

Sto inviando una richiesta Ajax ad un file php come mostrato qui:

function checkDB(code, userid) { $.ajax({ type: "POST", url: "/profile/check_code.php", data: 'code='+code+'userid='+userid, datatype: "html", success: function(result){ if(result == 0) { $('#success').html( code + ' has been redeemed!'); // alert('success');//testing purposes } else if(result == 2) { $('#err').html( code + ' already exists and has already been redeemed....'); //alert('fail');//testing purposes }else if(result == 1){ $('#err').html( code + ' redeem code doesnt exist'); } alert(result); } }) } 

Questo viene inviato chiamando la funzione su submit, in questo modo:

 <form method="post" class="sc_ajaxxx" id="sc_add_voucherx" name="sc_ajax" onsubmit="checkDB(document.sc_ajax.sc_voucher_code.value, ); return false;">  

Il problema è che la variabile php id utente non viene inviata alla pagina check_code.php da ajax. o almeno non riesco a riportare l’ID alla pagina.

È questo il modo corretto di passare più valori su una pagina lato server? Senza il passaggio dell’utente, funziona bene solo passando il codice.

Grazie ragazzi 🙂

Ecco come devono essere formattati i dati POST :

 key1=value1&key2=value2&key3=value3 

Nel tuo caso (prendi nota di & come separatore):

 'code=' + code + '&userid=' + userid 

Ma jQuery lo fa per te se specifichi i tuoi dati come un object:

 data: { code: code, userid: userid } 

dovresti impostare i tuoi data modo:

 data: 'code='+code+'&userid='+userid 

puoi provare questo:

 data: 'code='+code+'&userid='+userid, 

invece di

 data: 'code='+code+'userid='+userid, 

Prova questo codice … sta funzionando per me …

  

di solito inviare i tuoi dati in questo modo aiuta:

 data: { code: code, userid: userid } 

la cosa più importante da non dimenticare è verificare se il nome delle variabili che stai inviando sono le stesse sul lato server

  Try this code...  //in html code