Ich sende eine Ajax-Anfrage an eine PHP-Datei wie hier gezeigt:
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);
}
})
}
Diese Anfrage wird gesendet, indem die Funktion "Submit" aufgerufen wird, etwa so:
<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>
Das Problem ist, dass die Benutzer-ID php-Variable nicht an die check_code.php Seite durch Ajax gesendet wird. oder zumindest kann ich nicht scheinen, um die ID zurück auf die Seite zu echo.
Ist dies der richtige Weg, um mehrere Werte an eine serverseitige Seite zu übergeben? Ohne die Übergabe der userid funktioniert die Übergabe des Codes problemlos.
Danke Jungs :)
So sollten die "POST"-Daten formatiert werden:
key1=value1&key2=value2&key3=value3
In Ihrem Fall (beachten Sie das &
als Trennzeichen):
'code=' + code + '&userid=' + userid
Aber jQuery macht das für Sie, wenn Sie Ihre Daten als Objekt angeben:
data: { code: code, userid: userid }
sollten Sie Ihre "Daten" wie folgt einstellen:
data: 'code='+code+'&userid='+userid