Afficher un DIV caché après la soumission d'un formulaire d'action
Je suis en train d'afficher un div caché après l'envoi d'un formulaire de données
En dessous de mon formulaire html où la section d'entrée aura un formulaire pour saisir les données et après avoir soumis le formulaire, j'ai à montrer caché section de sortie et montrer le résultat, il y
code html:
<div id="input">
----- some form datas here ----
<div id="submit">
<input type="submit" id="generate" name="script" value="generate" />
</div>
</div>
<div id="output" style="display: none;">
--- php echo from above form------
</div>
</form>
css:
#input{
width:800px;
margin: auto;
border-width:1px;
border-style:solid;
border-color:#ddd;
}
#output{
width:800px;
margin: auto;
border-width:1px;
border-style:solid;
border-color:#ddd;
}
Après quelques discussion précédente sur les mêmes sujets, ci-dessous est l'un des répondu solution pour ce
créer un JavaScript, comme afficher un div caché après la soumission du formulaire.
$('form').submit(function(){
$('#output').show();
});
ou
$('form').submit(function(e){
$('#output').hide();
e.preventDefault();
//Or with: return false;
});
Mais les deux solutions ne sont pas de travail pour moi.le second est capable de montrer le caché div output
mais il ne montre pas réel des données de formulaire.
Comment puis-je afficher correctement ? J'ai besoin de montrer ce après la soumission du formulaire (type="submit")
Mise à JOUR:
-
Supprimé les css pour masquer div
-
Ajouté la fonction css dans la feuille de style pour cacher div
#output{ display:none; width:800px; margin: auto; border-width:1px; border-style:solid; border-color:#ddd; }
-
Ajoutée en dessous de jquery pour afficher la div sur la soumettre le formulaire
$('form').submit(function(){ $('#output').css({ 'display' : 'block' }); });
Encore je une pas en mesure d'atteindre le résultat. Aucune idée ici ?
- je ne pense pas que
$('#doutput')
existe dans votre code, ou est-il? - DKM : C'était une faute de frappe. corrigé..
- vous avez mentionné que la deuxième option est de ne pas montrer les données de formulaire, mais comment faites-vous la définition de la forme de la valeur de données pour la section de sortie? êtes-vous configurer les valeurs sur soumettre?
- Harry l'aide de PHP echo
- ok, pouvez-vous montrer un échantillon de ce PHP echo déclarations? aussi, ne serait pas PHP echo exécuté uniquement sur la page de la charge quand les valeurs d'un formulaire serait vide? êtes-vous d'exécuter tout code pour actualiser le contenu sur soumettre?
Vous devez vous connecter pour publier un commentaire.
utilisation
Pour afficher la sortie
Ici, dans votre script, vous êtes orthographe doutput. la remplacer par une sortie
et à l'usage .css() de la fonction et de définir
display: block !important;
parce que vous les avez exposées dans votre style en ligne afin de remplacer cette, vous devez définir le !important.Sinon, définir
display: none;
dans la feuille de style au lieu de l'utiliser dans de style en ligne et faire le reste sans réglage !importantdisplay: none
dans sa feuille de style et faire le reste en JS. De cette façon,!important
n'est pas nécessaire, ce qui, je pense, ne doit pas être utilisé jamais...Supprimer Display: none;
Et faire ce code
à se cacher et à
pour montrer
Vous pouvez utiliser
.hide()
et.show()
plutôt que d'éditer des attributs CSS via.css()
.si vous voulez afficher les résultats à l'intérieur de la DIV, il y a beaucoup de façons de le faire.
Donner de toutes vos données de forme d'un ID, et puis écrire une fonction javascript pour remplir les réponses dans le dit DIV.
Postez votre formulaire à l'ajax, le retour de la réponse à votre DIV
Après la soumission, vérifie si $_POST est de définir et de montrer ensuite la div avec $_POST contenu.
Si j'ai bien compris vous ne voulez pas de recharger la page.
Dans ce cas, vous devez envoyer les données du formulaire via l'appel ajax.
Que vous pouvez afficher la réponse et le caché div.
CSS
jQuery
HTML
Vous pouvez essayer d'utiliser l'attribut "action" de l'élément de formulaire ou vous pouvez essayer le jquery serializeArray méthode à l'élément de formulaire à droite après le soumettre.
Veuillez voir cette jsfiddle
<input type="text" name="a" value="1" id="a" />