problème avec jquery .post() ne fonctionne pas
Question
je suis donc nouveau dans l'utilisation de jquery .post() mais je n'utilise pas de méthodes que je n'ai pas déjà utilisées auparavant.
J'essaie de publier deux valeurs d'entrée masquées lorsqu'un bouton est cliqué :
$('#button').live('click', function() {
$.post('export_file.php', { group: form.group.value , test: form.test.value },
function(output) {
$('#return').html(output).show();
});
});
J'ai testé l'événement du bouton se déclenche avec succès et actuellement tout ce que j'essaie de faire export_file.php
fait écho à quelque chose.
voici mon formulaire :
<form name="form">
<input type="hidden" name="group" value="<?echo $group;?>">
<input type="hidden" name="test" value="<?echo $test_id;?>">
<input type="button" class="Mybutton" id="button" name="btnSubmit" value="Export Results">
</form>
j'ai mon div sur la page d'origine :
<div id='return'></div>
export_file.php :
<?php
echo "whatever, something!";
?>
Quelqu'un pourrait-il m'indiquer où je me trompe.Merci beaucoup,
La solution
Corrigez cette ligne :
$.post('export_file.php', { group: form.group.value , test: form.test.value },
Changez-le en quelque chose comme ceci :
var group_val = $('input[name="group"]', 'form[name="form"]').get(0).value;
var test_val = $('input[name="test"]', 'form[name="form"]').get(0).value;
$.post('export_file.php', { group: group_val , test: test_val },
Autres conseils
Essayer:
$('#button').live('click', function() {
$.post('export_file.php', { group: $("input[name='group']").val() , test: $("input[name='test']").val() },
function(output) {
$('#return').html(output).show();
});
});
J'ai ajouté des identifiants aux éléments de votre formulaire dans votre HTML :
<form name="form">
<input type="hidden" name="group" id="group" value="<?echo $group;?>">
<input type="hidden" name="test" id="test" value="<?echo $test_id;?>">
<input type="button" class="Mybutton" id="button" name="btnSubmit" value="Export Results">
</form>
Ensuite, j'ai modifié le jQuery pour obtenir les valeurs de ces champs par ID, et utilisez-les dans les paramètres de votre appel AJAX :
$('#button').live('click', function() {
var groupValue = $("#group").val();
var testValue = $("#test").val();
$.post('export_file.php', { group: groupValue , test: testValue },
function(output) {
$('#return').html(output).show();
});
});
essaye celui-là
$('#button').live('click', function() {
var group_val = $("input[name='group']").val(); // gets the value of hidden field with the name group
var test_val = $("input[name='test']").val(); // gets the value of hidden field with the name test and store it in test_val variable
$.post('export_file.php', { group: group_val , test: test_val },
function(output) {
$('#return').html(output).show();
});
});