2011-09-19 5 views
1

J'ai ce qu'il me semble être un problème étrange.Problème avec les cookies PHP et jQuery

J'ai une page Web avec un menu accordéon jQuery, et un comportement JQuery, UEL est celle-là:

$(document).ready(function() { 
$("#accordion").accordion({ 
    collapsible: true, 
    active: true, 
    autoHeight: false, 
    /* Binding to the change event of the accordion. When all panes are collapsed, ui.newHeader will be an empty jQuery object */ 
    changestart: function(event, ui) { 
     if (!ui.newHeader.length) { 
      $("#prods_vcts").css("background", "url(images/Fondo_ALT_Products.png)"); 
      $('#sub2').hide('fast'); 
      $('#sub4').hide('fast'); 
     } else { 
      $("#prods_vcts").css("background", "url(images/taula_vcts_" 
       + ui.newHeader.attr("id") + ".png) no-repeat"); 
       $('#sub2').hide('fast'); 
       var descrid = ui.newHeader.attr("id"); 
       $.post('scripts/mostrar_descr_gral.php', {desc:descrid}, function(data) { 
        $('#sub4').show('fast'); 
        $('#sub4').html(data); 
       }); 
     } 
    } 
}); 
$('.detail').live('click',function() { 
    var subcatid = this.id; 
    $.post('mostrar_prods.php', {subcat:subcatid}, function(data) { 
     $('#sub4').hide('fast'); 
     $('#sub2').show('fast'); 
     $('#sub2').html(data); 
    }); 
    return false; 
}); 
$('form').live('submit', function() { 
    var formid = this.id; 
    var prodidval = $('#prodid'+formid).val(); 
    var prodpreuval = $('#prodpreu'+formid).val(); 
    var prodquantval = $('#prodquant'+formid).val(); 
    $.post('scripts/carret.php', {idval:prodidval, preuval:prodpreuval, quantval:prodquantval, id:formid}, function(data) { 
     $('#sub333').html(data); 
    }); 
    return false; 
}); 
}); 

Le problème est: tout fonctionne comme prévu, jusqu'à ce que je mis un cookie. L'idée est qu'un cookie est défini lorsque l'utilisateur clique sur 'scripts/carret.php'. Quand un cookie est présent, alors l'accordéon fonctionne parfaitement, mais pas les deux autres fonctions.

J'ai essayé de définir le cookie dans la première ligne de l'index.php, dans la première ligne des scripts/carret.php, avec le plugin jQuery, etc .; J'ai essayé de changer le dossier de scripts/carret.php, j'ai essayé le '/', etc. J'ai vérifié, et je ne sais plus.

Soit dit en passant, c'est le contenu de carret.php:

<?php 

$qidval = $_REQUEST['idval']; 
$qpreuval = $_REQUEST['preuval']; 
$qquantval = $_REQUEST['quantval']; 

echo '<div id="sub33" style="margin-top:100px; margin-left:80px; position:relative; z-index:2"> 
<div style="position:absolute; margin-top:0px; text-align:left"> 
    idval= '.$_REQUEST['idval'].'<br> 
    preuval= '.$qpreuval.'<br> 
    quantval= '.$qquantval.'<br> 
    id= '.$_REQUEST['id'].' 
</div> 
</div>'; 

Et voilà. Toute aide ou suggestion? Je suis sûr que c'est quelque chose de basique qui me manque, étant un débutant!

Merci!

R

+0

Il est tard ici, peut-être que je supervise quelque chose, mais que font les cookies dans votre script? Où les placez-vous? Et les cookies, aussi, commencent à partir de la demande suivante, donc si vous le définissez maintenant, il sera disponible à la prochaine demande. Autre chose, évasion, il y a des vulnérabilités xss dans votre script –

+0

Peut-être utile si vous pouviez fournir un lien vers une page qui héberge votre code? –

+0

Je pense que j'ai raté quelque chose ... vous envoyez un 'post $ .post ('scripts/carret.php') mais ramasser' get' vars '$ qidval = $ _REQUEST ['idval'];'? –

Répondre

1

jk avait raison, il était un problème d'utilisation et demande une boucle lors de la recherche de poste et avec un cookie: le premier résultat récupéré était le cookie, sur le poteau.