J'envoie une requête ajax à un fichier php comme indiqué ici :
function checkDB(code, userid)
{
$.ajax({
type: "POST",
url: "<?php bloginfo('template_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);
}
})
}
Cette requête est envoyée en appelant la fonction de soumission, comme ceci :
<form method="post" class="sc_ajaxxx" id="sc_add_voucherx" name="sc_ajax"
onsubmit="checkDB(document.sc_ajax.sc_voucher_code.value, <?php echo $user_id ?>); return false;">
</form>
Le problème est que la variable php de l'identifiant de l'utilisateur n'est pas envoyée à la page check_code.php par ajax. Ou du moins, je ne parviens pas à renvoyer l'identifiant à la page.
Est-ce la bonne façon de transmettre plusieurs valeurs à une page côté serveur ? Sans le transfert de l'identifiant, le code fonctionne bien.
Merci les gars :)
Voici comment les données POST
doivent être formatées :
key1=value1&key2=value2&key3=value3
Dans votre cas (notez le &
comme séparateur) :
'code=' + code + '&userid=' + userid
Mais jQuery le fait pour vous si vous spécifiez vos données comme un objet :
data: { code: code, userid: userid }