2010-02-02 6 views
0

J'ai besoin d'aide avec ce que je pensais être un simple formulaire de soumettre un problème avec Jquery, mais je cours dans des problèmes.Jquery formulaire soumettre avec PHP

J'ai un formulaire, # listing_step_1, dans lequel l'utilisateur sélectionne d'abord une catégorie dans une liste déroulante. Lorsqu'une catégorie a été sélectionnée, si l'utilisateur clique sur "suivant", la liste déroulante de la sous-catégorie est révélée. Lorsque vous sélectionnez une catégorie et une sous-catégorie, cliquez sur Suivant pour passer à l'étape 2 du processus à l'aide d'une redirection. Lors de la soumission, le formulaire recharge la même page à l'aide de $ _SERVER ['PHP_SELF'].

Je veux autosubmit le formulaire en cliquant sur suivant n'est pas nécessaire pour révéler les sous-catégories. J'essaie de le faire sur un événement onchange en utilisant JQuery, mais le code suivant ne fonctionne pas.

$('#item_category').change(function(){ 
    $('#listing_step_1').submit(); 
}); 

J'apprécierais n'importe quelle aide avec ceci comme je suis nouveau pour former la soumission utilisant JQuery et AJAX. Manuellement, cela fonctionne bien, c'est-à-dire en appuyant sur le bouton de page et avec l'actualisation de la page PHP. Je pensais qu'en soumettant simplement le formulaire dans l'instance onchange, il rechargerait et exécuterait les actions requises, mais cela ne semble pas être le cas.

Code Forme:

<form method="post" name="listing_step_1" id="listing_step_1" action="<?php $_SERVER['PHP_SELF'] ?>" enctype="multipart/form-data" <?php if($errormessage != ""){ echo ' style="margin-top: 30px"';}?>> 
    <div class="formField fullwidth"> 
    <label for="item_category">Category *</label> 
    <select id="item_category" name="item_category"> 
     <option value="0">Select category...</option> 
     <?php $cd = new CategoryListing("<option_credits>", "</option>"); ?> 
    </select> 
    </div> 
    <div class="formField fullwidth"> 
    <label for="item_subcategory">Subcategory*</label> 
    <?php if($dropdownlist != "") { ?> 
    <select id="item_subcategory" name="item_subcategory"> 
     <?php echo $dropdownlist; ?> 
    </select> 
    <?php } else { ?> 
    <select id="item_subcategory" name="item_subcategory" disabled="true"> 
     <option value="0">Select subcategory...</option> 
    </select> 
    <?php } ?> 
    </div> 
    <input type="submit" value="Next" id="submit" name="submit" style="width: 100px;" /> 
</form> 

Formulaire de soumission:

if(isset($_POST['submit'])){ 
if($_POST['item_category'] != 0){ 
    $dropdownlist = CategoryListing::getSubCategoryDropdown($_POST['item_category']); 
} 
else { 
    $errormessage = "Please select a category"; 
} 
} 

Jquery:

$(document).ready(function(){ 
     $('#item_category').change(function(){ 
     this.form.submit(); 
    }); 
}); 
+0

Afficher davantage de votre code, y compris les éléments HTML qui composent votre formulaire. –

Répondre

1

Essayez ceci:

$(function() { 
    $('#item_category').change(function(){ 
    this.form.submit(); 
    }); 
}); 
+0

Le formulaire ne semble toujours pas envoyer avec $ ('# item_category'). Change (function() { this.form.submit(); }); – pingu

+0

@pingu - Aiderait si vous pouviez poster le code HTML du formulaire ainsi que –

+0

original publié édité pour inclure cela. – pingu

0

dans votre description, vous dites:

J'ai une forme, # listing_stage_1, en que l'utilisateur sélectionne d'abord un c ...

puis dans le code vous dites:

$('#item_category').change(function(){ 
    $('#listing_step_1').submit(); 
}); 

Je suppose que vous utilisez juste le mauvais sélecteur ... changer votre code à ceci:

$('#item_category').change(function(){ 
    $('#listing_stage_1').submit(); 
}); 
+0

désolé ils devraient tous les deux être étape - pas étape. Édité. – pingu