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 :

Formulaire insertion BDD array et retour ajax


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 124
    Par défaut Formulaire insertion BDD array et retour ajax
    Bonsoir,

    J'ai un formulaire avec la possibilité de rajouter autant d'input voulu (via script javascript).
    Jusque là tout va bien, l'enregistrement en BDD s'effectue bien.
    Maintenant, j'aimerais ajouter un script ajax pour ne pas avoir à recharger ce formulaire lors de la soumission (réussie ou retour d'erreurs).
    J'ai utilisé celui que j'utilisais jusqu'à présent, le problème c'est que dans ce cas là, j'ai un tableau. Et je ne sais comment le gérer.

    Voici mes codes.

    Code php :

    Code php : 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
     
    $id_p_f = $_POST['prod_exist'];
    $r_c = $_POST['ref_commande'];
    $n_p = $_POST['new_prod'];
    $u_c =  $_POST['unite_comm'];
    $q_p = $_POST['quantite_comm'];
    $px_ht_c = $_POST['prix_ht_comm'];
    $tva_p = $_POST['tva_prod_comm'];
    $d_c = dateUS($_POST['date_new_comm']);
    $p_v = '0';
     
     
    end($px_ht_c);
    $lastItem = key($px_ht_c);
     
    		$insertQuery = "INSERT INTO commandes (id_prod_fournisseur, id_societe, num_comm, designation_comm, unite_comm, quantite_comm, prix_ht_comm, taux_tva_comm, date_commande, paiement_fournisseur) VALUES";
    		$valuesQuery='';
     
    		foreach( $px_ht_c as $key => $n ) {
    			$valuesQuery .= "('". $id_p_f[$key] . "', '". $_SESSION['auth_id_societe'] . "', '". $r_c . "', '". $n_p[$key] . "', '" . $u_c[$key] . "', '" . $q_p[$key] . "', '". $n . "', '" . $tva_p[$key] . "', '" . $d_c . "', '" . $p_v . "')";
     
    				if($key === $lastItem) { //n'affiche pas la virgule après le dernier (value1, value2...)
    					$valuesQuery .= '';
    				}
    				else{
    					$valuesQuery .= ',';
    				}
    		}
    		$valuesQuery .= ';';
     
    		$stmt = Cnx::connectCnx()->prepare($insertQuery . $valuesQuery);
    		$stmt->execute();
    		var_dump($insertQuery . $valuesQuery);
     
    	echo "ok";
    }

    Code js :

    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
     
    $(function(NewCommande) { //Affiche un message de réussite ou d'erreur lors de l'enregistrement d'une nouvelle commande
    	$(document).ready(function() {
    		$("#new_commandes_ajax").on('submit', '#form_new_commandes', function() {
    		console.log( $(this).serialize() );// on vérifie les erreurs
    		console.log( $( this ).serializeArray() );
    			$.ajax({
    				url: "gest_comm_enr.php",
    				type: "POST",
    				dataType : 'html',
    				data : $(this).serialize(),
    				success: function(data) {
    					if($.trim(data) == "ok"){
    						$(".error").empty().html("<div class='apres_valid_mess'>Enregistrement de la commande effectué.</div>").delay(1300).hide(200, function(){ $(this).html('').toggle()});
    						document.forms.form_new_commandes.reset();
                        }
    					else {
    						$(".error").empty().html(data).delay(2300).hide(200, function(){ $(this).html('').toggle()});
    					}
    				},
    				error : function(resultat, statut, erreur){
    					$(".error").html("Une erreur s'est produite.");
    				}
    			});
    		return false;
    		});
    	});
    });

    Quelqu'un a une idée peut être ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Absolument rien à voir avec javascript et jquery...
    Je te conseille de faire un var_dump($_POST) en php...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. [MySQL] insertion bdd sans formulaire?
    Par ifiii dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/01/2011, 17h23
  2. formulaire + insertion BDD + envoie information autre page
    Par james23 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 02/08/2010, 18h38
  3. Réponses: 8
    Dernier message: 26/05/2009, 12h18
  4. [MySQL] Formulaire PHP avec insertion BDD & Session
    Par DjChat dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 23/05/2008, 13h36
  5. [SGBD] formulaire insertion date Bdd Mysql
    Par Mimisator dans le forum Administration
    Réponses: 7
    Dernier message: 30/11/2005, 09h38

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