2012-04-09 2 views
0

j'ai le code suivant:jquery ": entrée" difficultés de sélection

<h3> Your Profile </h3> 
The information below is what we have on file for you. 

<form id="profileform" name="profileform" action=""> 
<table> 

<?php 
$profile_array = select_profile_data($_SESSION['id']); 
while (list($key, $value) = each($profile_array)) { 
if(!in_array($key,$dont_display_list,true)) { 
echo '<tr><td>'.$key.'</td><td><input type="text" name=' . $key . ' value="'.$value.'"</td></tr>'; 
} 
} 
?> 
</table> 
<input type="button" value="submit changes" name="submit" onClick="button_click('profileform')"> 
</form> 

<script type='text/javascript'> 

function button_click(formname) { 
var fullselect = formname + " :input"; 
alert(fullselect); 
var values = $(fullselect); 
alert(values.size()); 
$("#content").html('<span>Loading...</span>'); 
$("#content").load('profile.php', values, function(response, status, xhr) { 
     if (status == "error") { 
      var msg = "Sorry but there was an error: "; 
      $("#content").html(msg + xhr.status + " " + xhr.statusText); 
     } 
    }); 
} 

mon alerte à "FULLSELECT" me montre le 'profileform: entrée' chaîne de sélecteur jquery prévu. Cependant, ma variable "values" retourne toujours une taille de "0". Alors qu'il y a certainement des "variables d'entrée" dans le formulaire. Des idées sur où je me trompe ici?

grâce,

+1

pour sélectionner une entrée dans un formulaire, votre sélecteur peut être $ (+ formname « entrée »). Vous n'avez pas besoin du deux-points pour cela – Kristian

+0

@Kristian 'input' et': input' ne sont pas les mêmes. ': input' sélectionnera les éléments' input', 'textarea',' button' et 'select'. 'input', obtient juste' input'. http://api.jquery.com/input-selector/ –

+0

ah, je me tiens corrigé, merci pour les docs – Kristian

Répondre

1

Vous avez manqué le # dès le début de la variable formname, comme il est le id de la forme:

var fullselect = "#" + formname + " :input"; 

En outre, la variable values sera un tableau d'objets jQuery , donc il ne sera pas valide pour vous de passer à travers votre PHP en utilisant la méthode load(). La meilleure chose à faire est de serialize() la forme entière et que passer:

var values = $(fullselect).serialize(); 
+0

Merci, je savais que c'était quelque chose de simple !!! – Dromendokter