2009-08-11 6 views
2

J'utilise jquery pour publier des données dans mysql.Valeur de l'élément Post SELECT

**In settings.php i have this short JS code:** 

$("form#submit").submit(function() { 
    var fname  = $('#fname').attr('value'); 
    var lname  = $('#lname').attr('value'); 
    $.ajax({ 
     type: "POST", 
     url: "settings.php", 
     data: "fname="+ fname +"& lname="+ lname, 
     success: function(){ 
      $('form#submit').hide(); 
      $('div.success').fadeIn(); 
     } 
    }); 
return false; 
}); 


**And this short php:** 


if (isset($_POST['fname'])){ 
     $fname  = htmlspecialchars(trim($_POST['fname'])); 
      DO SOMETHING.... 
} 

C'est le code où le FNAME provient de: (après touché ADD-bouton d'image puis affiché la valeur nomfich ..)

echo "...... 
     <form id='submit$i' method='post'><input type='hidden' name='fname' id='fname' class='text' value='$fm_linkaz'></div><input name='add'type='image' id='add' value='$fm_linkaz' src='s.png'/></form>.........."; 

Ceci est bien. Mais je besoin d'un élément SELECT, donc je l'ai changé le code:

...... 

    echo "<select name=dropdown_list id='**ONAME**'><option value''>test</option>"; 
    for($i=0; $i < count($myarray); $i++){ 
    echo "<option value='$myarray[$i]'>$myarray[$i]</option>";}echo "</select>"; 

    ......</form>"; 

Ce travail est bien, mais je ne sais pas comment puis-je modifier le code JS, pour afficher la valeur sélectionnée aussi.
Merci pour votre aide.

Répondre

1

tout d'abord le code javascript a besoin de quelques mises à jour:

$('#fname').val() est meilleur que $('#fname').attr('value') - .val() travaillera sur sélection/cases à cocher et - où .attr('value') ne seront pas fiables.

Deuxièmement: le paramètre de données à votre appel .ajax de $() peut prendre un objet JSON (ce qui permet de convertir à la chaîne de forme)

$.ajax({ 
    type: "POST", 
    url: "settings.php", 
    data: { 
    'fname': $('#fname').val(), 
    'lname': $('#lname').val(), 
    'oname': $('#oname').val() 
    }, 
    success: function(){ 
    $('form#submit').hide(); 
    $('div.success').fadeIn(); 
    } 
}); 

Il y a un plugin qui rend ce beaucoup plus facile:

$("form").ajaxForm({ 
    success: function(){ 
    $('form#submit').hide(); 
    $('div.success').fadeIn(); 
    } 
}); 

MISE À JOUR:

également - l'élément <select> a été nommé « dropdown_list "- peut-être que vous vouliez que les données soient" oname "à la place. Les éléments de formulaire utilisent la propriété "name" à soumettre, la propriété id rend les sélecteurs css/js plus faciles à coder.

+0

J'ai changé comme vous l'avez dit..mais, après avoir appuyé sur le bouton, je l'utilise pour tester si ONAME est affiché ... if (isset ($ _ POST ['oname'])) { echo "Ok"; } Mais pas d'écho, donc quelque chose ne va pas avec ce code. Le menu déroulant est le travail, seulement aucune posté aucune valeur .. echo ".... quelque chose ... "; pour ($ i = 0; $ i $ myarray [$ i] "; } echo ""; ........... –

+0

Votre champ "nom" est "dropdown_list" - pas "oname" est-ce que c'est peut-être le problème? Check $ _POST ['dropdown_list']? – gnarf

+0

Aussi - j'ai remarqué dans un autre commentaire que vous aviez - mis à jour le code pour sélectionner $ ("# oname") au lieu de $ ("select [@ name = dropdown_list] "); - Semble que "; ........... –

Questions connexes