2010-11-02 8 views
0

Bonjour je veux dans le moment je sélectionne une valeur pour poster à la page process.php. J'ai ce code:Jquery onchange Post

<select name="sweets" id="sweets" > 
<option value="1">Chocolate</option> 


<option value="2">Taffy</option> 

<option value="3">Fudge</option> 
<option value="4">Cookie</option> 

et jquery:

$("#sweets").change(function() { 
     var str = ""; 
     $("select option:selected").each(function() { 
      str += $(this).val() + " "; 
     var q = $(this).val(); 
      var dataString = 'q=' + q; 

      }); 
     $("div").text(str); 
     $.ajax({ 
        type: "POST", 
        url: "process.php", 
        data: dataString, 
        success: function() { 
             $('#form').slideUp('slow'); 
             } 
       }) 

    }) 

    .change(); 

et je ne peux pas le faire afficher la valeur process.php.

Toute aide est appréciée,

merci

Répondre

1

Vous déclarer dataString dans un endroit étrange, mais vous pouvez obtenir le .val() du directement beaucoup plus facile <select>, comme ceci:

$("#sweets").change(function() { 
    $("div").text($(this).val()); 
    $.post("process.php", { q: $(this).val() }, function() { 
    $('#form').slideUp('slow'); 
    }); 
}).change(); 

Dans ce qui précède, j'ai également converti votre code pour utiliser $.post() juste comme un raccourci, mais il a le même effet.

+0

Merci Nick, je cours votre exemple local et regarder avec Fireboog ne semble pas afficher .. pourriez-vous prendre un meilleur regard .. je suis begginer avec Jquery merci – Teodor

+0

@Teodor - vous exécutez cela à l'intérieur un gestionnaire "prêt", p.ex. tout ce qui précède est enveloppé dans '$ (function() {/ * code * /});'? –

+0

En fait, j'ai mis le fichier en ligne pour vous montrer et en ligne semble fonctionner dans les deux cas avec et sans document prêt :) merci .. quelque chose d'étrange sur locale :) – Teodor