J'envoie une demande 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);
}
})
}
Ceci est envoyé en appelant la fonction sur submit, comme suit:
<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 utilisateur id php n'est pas envoyée à la page check_code.php par ajax. ou du moins je ne peux pas sembler faire écho à l'identifiant de retour à la page.
Est-ce la bonne façon de transmettre plusieurs valeurs à une page côté serveur? Sans que l'ID utilisateur passe, cela fonctionne très bien, simplement en passant le code.
Merci les gars :)
Voici comment les données POST
devraient être formatées:
key1=value1&key2=value2&key3=value3
Dans votre cas (notez le &
en tant que séparateur):
'code=' + code + '&userid=' + userid
Mais jQuery le fait pour vous si vous spécifiez vos données en tant qu’objet:
data: { code: code, userid: userid }
vous devriez définir votre data
comme suit:
data: 'code='+code+'&userid='+userid
vous pouvez essayer ceci:
data: 'code='+code+'&userid='+userid,
au lieu de
data: 'code='+code+'userid='+userid,
généralement envoyer vos données comme ceci aide:
data: { code: code, userid: userid }
la chose la plus importante à ne pas oublier est de vérifier si le nom des variables que vous envoyez est le même du côté serveur.
La réponse de Linus Gustav Larsson Thiel fait référence, j’ai utilisé le texte suivant & .ajax () qui se déclenche lorsqu’un bouton est cliqué et qui fonctionne très bien. Je pourrais passer des paramètres de jour, de mois et d’année.
$('#convertbtn').on('click',function(){
ageddajax = $("#agedd").val();
agedmmajax = $("#agemm").val();
ageyyyyajax = $("#ageyyyy").val();
if(ageddajax > 0 && agemmajax > 0 && ageyyyyajax >0){
$.ajax({
type:'POST',
url:'ajaxDataAge.php',
data:'agedd_id='+ageddajax +'&agemm_id='+agemmajax +'&ageyyyy_id='+ageyyyyajax,
success:function(html){
$('#cydivage').html(html);
}
});
}
});
Try this code...
<script>
function quote_ajax_table(){
var doc_name = '<?php echo $test; ?>';
var doc_no = '<?php echo $doc_no; ?>';
$.get('quote_ajax_table.php?doc_no='+doc_no+'&doc_name='+doc_name,function(data) {
$('.dyna').html(data);
});
}
</script>
//in html code
<div class="dyna"></div>
Essayez ce code ... ça marche pour moi ...
<script type='text/javascript'>
$(document).ready(function(){
$(".star").click(function(){
var rate_value1= $(this).index(".star")+1;
$.ajax({
type: "POST",
dataType: "json",
url: "<?php echo(rootpath()) ?>/vote.php",
data: { product_id: '<?php echo($product_id_to_permalink) ?>' , rate_value: rate_value1 }
});
});
});
</script>