Jeg sender en ajax-forespørsel til en php-fil som vist her:
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);
}
})
}
Denne sendes ved å kalle funksjonen på submit, slik:
<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>
Problemet er at php-variabelen for bruker-ID ikke blir sendt til check_code.php-siden via Ajax. eller i det minste ser det ikke ut til at jeg kan sende ID-en tilbake til siden.
Er dette den riktige måten å sende flere verdier til en serverside på? Uten at bruker-ID-en sendes over, fungerer det fint å bare sende over koden.
Takk skal dere ha :)
Slik skal POST
-data formateres:
key1=value1&key2=value2&key3=value3
I ditt tilfelle (legg merke til &
som skilletegn):
'code=' + code + '&userid=' + userid
Men jQuery gjør det for deg hvis du angir dataene dine som et objekt:
data: { code: code, userid: userid }