IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

UI Dialog. Formulaire et traitement des données dans un dialogue


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 21
    Points : 19
    Points
    19
    Par défaut UI Dialog. Formulaire et traitement des données dans un dialogue
    Bonjour,

    je souhaiterais ouvrir un formulaire dans un "dialog", comme dans la démo de jQuery UI modal form http://jqueryui.com/demos/dialog/#modal-form, mais je voudrais traiter les informations (ajout dans une bdd) à la place de les entrer dans un tableau. Je n'arrive pas à trouver d'exemple de ce genre de formulaire, si vous pouviez m'indiquer où je peux trouver un exemple de ce type ou m'en concocter un petit... =)
    Merci d'avance,

    Luca.

  2. #2
    Membre averti Avatar de sayari.dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 142
    Points : 300
    Points
    300
    Par défaut
    Si t'as arrivé à afficher le formulaire dans le dialogue, c'est déjà pas mal. Pense à envoyer tes données avec ajax.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $('element_selectionne').dialog({
      ...........,
      buttons: [
             'Ajouter' : function(){
                     $.ajax({
                          url: .....,
                          data: ........,
                          type: 'POST', .....
                     });
    }
    ],
    });
    C'est en faisant n'importe quoi qu'on devient n'importe qui

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Ok pour la fonction ajax, j'ai réussi à afficher le formulaire, mais je ne suis pas vraiment convaincu du résultat, les selectbox sont très rapprochées, la checkbox est centrée et n'est pas sur la même ligne que son label...

    Est-ce qu'il y a un endroit ou je pourrais voir à quoi ressemble un formulaire jQuery UI ou un exemple, ça fait quand même un bon moment que je cherche et je trouve vraiment rien de rien.

    Une dernière chose : mon code est le suivant, je ne l'ai pas encore testé mais j'aimerai savoir si le résultat final doit ressembler plus ou moins à ça.

    Merci.
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    <div class="test">
     
     
    	<div id="dialog-form" title="Ajouter une tache">
    		<form>
    		<fieldset>
    			<label for="libelle">Libelle</label>
    			<input type="text" name="libelle" id="libelle" class="text ui-widget-content ui-corner-all" />
     
    			<label for="Type">Type de RDV</label>
    			<select name="type" id="type" class="text ui-widget-content ui-corner-all" />
    				<option value="Entretien">Entretien</option>
    				<option value="Dépannage">Dépannage</option>
    				<option value="Congés">Congés</option>
    			</select>
     
    			<label for="employe">Employe</label>
    			<select name="id_empl" id="id_empl" class="selectbox ui-widget-content ui-corner-all" />
    				<option value="Entretien">Entretien</option>
    				<option value="Dépannage">Dépannage</option>
    				<option value="Congés">Congés</option>
    			</select>
     
    			<label for="date">Date</label>
    			<input type="text" name="date" id="date" class="text datepicker ui-widget-content ui-corner-all" />
     
     
    			<label for="client">Client</label>
    			<input type="text" name="client" id="client" class="text ui-widget-content ui-corner-all" />	
     
    			<label for="camion">Réservation Camion</label>
    			<input type="checkbox" name="camion" id="camion" class="text ui-widget-content ui-corner-all" />
     
    			<label for="commentaire">Commentaire</label>
    			<textarea name="commentaire" cols="30" rows="5" class="text ui-widget-content ui-corner-all"></textarea>
    		</fieldset>
    		</form>
    	</div>
     
    	<button id="create-user">Ajouter une tache</button>
     
    </div>

    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    $(function() {
    		$("#dialog").dialog("destroy");
     
    		var libelle = $("#libelle"),
    			type = $("#type"),
    			employe = $("#employe"),
    			date = $("#date"),
    			client = $("#client"),
    			camion = $("#camion"),
    			commentaire = $("#commentaire"),
    			allFields = $([]).add(libelle).add(type).add(employe).add(date).add(client).add(camion).add(commentaire);
     
    		$("#dialog-form").dialog({
    			autoOpen: false,
    			height: 450,
    			width: 250,
    			modal: false,
    			buttons: {
    				'Ajouter une tache': function() {
    					$(".ajax").submit( function(e) {
    						var datas = $(this).serialize();          
    						$.ajax({
    							type: 'POST',      // envoi des données en POST
    							url: traitement.php,    
    							data: datas,     // sélection des champs à envoyer
    							success: function(data) {  
    								// callback en cas de succès
     
    								//affiche un message de succès
    							}
    						});
    					});
    					$(this).dialog('close');
    				},
    				Retour: function() {
    					$(this).dialog('close');
    				}
    			},
    			close: function() {
    				allFields.val('').removeClass('ui-state-error');
    			}
    		});
     
     
     
    		$('#create-user')
    			.button()
    			.click(function() {
    				$('#dialog-form').dialog('open');
    			});
     
    	});

  4. #4
    Membre averti Avatar de sayari.dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 142
    Points : 300
    Points
    300
    Par défaut
    Pour la mise en forme, essaie avec une largeur 'width' plus importante.


    Pour le script, j'ai une remarque :

    Mets cette partie à part
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $(".ajax").submit( function(e) {
    						var datas = $(this).serialize();          
    						$.ajax({
    							type: 'POST',      // envoi des données en POST
    							url: traitement.php,    
    							data: datas,     // sélection des champs à envoyer
    							success: function(data) {  
    								// callback en cas de succès
     
    								//affiche un message de succès
    							}
    						});
                                            return false; // Pour empêcher le submit vers la page 'action'
    					});
    Et pour le bouton ajouter tu mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(".ajax").trigger('submit');
    Reste à signaler que la fermeture du dialogue doit se faire normalement au niveau du success
    C'est en faisant n'importe quoi qu'on devient n'importe qui

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Suite à la précieuse aide de php.dev, j'obtiens ce que je cherche. Merci à lui.

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    $(function() {
    	$("#dialog").dialog("destroy");
     
    	var libelle = $("#libelle"),
    		type = $("#type"),
    		employe = $("#employe"),
    		date = $("#date"),
    		client = $("#client"),
    		camion = $("#camion"),
    		commentaire = $("#commentaire"),
    		allFields = $([]).add(libelle).add(type).add(employe).add(date).add(client).add(camion).add(commentaire);
     
    	$("#dialog-form").dialog({
    		autoOpen: false,
    		height: 450,
    		width: 300,
    		modal: false,
    		buttons: {
    			'Ajouter une tache': function() {
    				$(".ajax").trigger('submit');
    			},
    			Retour: function() {
    				$("#dialog-form").dialog('close');
    			}
    		},
    		close: function() {
    			allFields.val('').removeClass('ui-state-error');
    		}
    	});
     
    	$(".ajax").submit(
    		function(e) {
    		var datas = $(this).serialize();          
    		$.ajax({
    			type: 'POST',      // envoi des données en POST
    			url: 'test2.php',    
    			data: datas,     // sélection des champs à envoyer
    			success: function() { 
    				$("#dialog-form").dialog('close');
    				alert('gagne');
    			}
    		});
    		return false; // Pour empêcher le submit vers la page 'action'
    	});
     
     
    	$('#create-user')
    		.button()
    		.click(function() {
    		$('#client').val('Hello!!!!!!!!!!!!!!!');
    		$('#dialog-form').dialog('open');
    	});
    });

    et l'ajout de la classe ajax au formulaire

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <form class="ajax">

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2012
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    j'aimerais savoir s'il vous plais comment intégrer le css par exemple sur les boutons comme retour , ou sur la boite de dialogue

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] traitement des données dans un fichier
    Par ramijrad dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/08/2010, 13h27
  2. utiliser formulaire pour enregistrer des données dans différentes tables
    Par silue fignigue siaka dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 11/04/2009, 13h53
  3. Problème: formulaire et traitement des données
    Par Pahcixam dans le forum Langage
    Réponses: 3
    Dernier message: 29/10/2006, 04h37
  4. [Formulaires] Traitement des données dans une autre page...
    Par sekiryou dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/03/2006, 09h08
  5. [PHP-JS] Traitement des données dans une autre page...
    Par sekiryou dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2006, 09h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo