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

PHP & Base de donn�es Discussion :

Ajouter un champ (JS) en respectant la lecture des donn�es issues de la base SQL via le PHP


Sujet :

PHP & Base de donn�es

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par d�faut Ajouter un champ (JS) en respectant la lecture des donn�es issues de la base SQL via le PHP
    Bonjour a tous et surtout BONNNNNNNNE ANNNNNNNNEEEEEEE !!!


    Pour cette NOUVELLE ann�e, je souhaiterai s'il vous plait vous exposer un NOUVEAU probl�me :-D

    J'ai actuellement un formulaire en PHP, dont les donn�es sont sauvegard�es via l'appelle d'une fonction envoi(), jusque la tout est OK :
    ';
    Code : 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
    $rescred = mysql_query("SELECT * FROM `toto` where idC='$idc' order by idCR asc");
        while($clcred = mysql_fetch_array($rescred, MYSQL_ASSOC))
        {
    	 for ($i = 1; $i <= 15; $i++) 
             {
    		$j=$i; if ($j<10){ $j='0'.$j;}
                               if ($clcred['nom_'.$i] =="1"){$nclcred="Pierre";}
                               if ($clcred['nom_'.$i] =="2"){$nclcred="Jean";}
                               if ($clcred['sex_'.$i] =="1"){$ncltyp="Homme";}
                               if ($clcred['sex_'.$i] =="3"){$ncltyp="Femme";}
    				echo '  	
    					<div class="form-group normal">
    						<div class="col-sm-2"><select name="nom_'.$i.'" id="nom_'.$i.'" class="form-control tooltips" onchange="envoi(\'nom_'.$i.'\','.$i.');" data-original-title="Nom Personne" data-placement="bottom"><option disabled>Nom</option>';if ($clcred['nom_'.$i]<>''){echo '<option value="'.$clcred['nom_'.$i].'" selected="selected">'.$nclcred.'</option>';} echo '<option value=""></option><option value="1">Pierre</option><option value="2">Jean</option></select></div>
    						<div class="col-sm-2"><select name="sex_'.$i.'" id="sex_'.$i.'" class="form-control tooltips" onchange="envoi(\'ncltyp_'.$i.'\','.$i.');" data-original-title="Sexe Personne" data-placement="bottom"><option disabled>Nom</option>';if ($clcred['sex_'.$i]<>''){echo '<option value="'.$clcred['sex_'.$i].'" selected="selected">'.$ncltyp.'</option>';} echo '<option value=""></option><option value="1">Homme</option><option value="2">Ierre</option></select></div>
    						<div class="col-sm-1"><input type="text" class="form-control tooltips" id="age_'.$i.'" name="age_'.$i.'" value="'.$clcred['age_'.$i].'" placeholder="Age" onblur="envoi(\'age_'.$i.'\','.$i.')" data-original-title="Age" data-placement="bottom"></div>
                                           </div>	
    		}
          }
    Mon probl�me vient du fait que le nombre de ligne est statique $i<=15, or j'aimerai bien modifier ce script en supprimant l'affichage des 15 lignes d'un coup et plutot proposer de rajouter des lignes de 2 jusqu'a 15 par exemple. La nous parlons de javascript :

    Code : 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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>formulaire multichamp</title>
    <script type="text/javascript">
    function create_champ(i) {
    var i2 = i + 1;
    document.getElementById('leschamps_'+i).innerHTML = '<input type="text" name="image_'+i2+'"></span>';
    document.getElementById('leschamps_'+i).innerHTML += (i <= 30) ? '<br /><span id="leschamps_'+i2+'"><a href="javascript:create_champ('+i2+')">Ajouter un champs</a></span>' : '';
    }
    </script>
    </head>
     
    <body>
    <input type="text" name="image_1" /><br />
    <span id="leschamps_1"><a href="javascript:create_champ(1)">Ajouter un champs</a></span>
    <!-- <input name="valide" type="submit" value="envoyer"/> -->
    </body>
    </html>
    Mon probl�me pour rester dans le PHP est que je ne parviens pas a rendre compatible le $i du javascript avec le $i du php.

    En clair je voudrai si l'on rappelle le fichier qu'il lise dans la base de donn�es SQL les infos sauvegard�es et qu'il affiche autant de lignes et d'infos qui ont �t� sauvegard�es.

    Si vous avez une piste de r�flexion, je suis preneur.

    Merci a tous pour votre aide et bonne journ�e

    Olivier

  2. #2
    Mod�rateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par d�faut
    Utilise une notation en tableau :
    Ainsi tu r�cup�res tout dans $_POST['image'] sans avoir besoin de savoir combien il y en a.

    Tu peux faire la m�me chose pour tous les champs.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par d�faut
    Je ne comprends pas ... pourquoi utiliser $_POST['image']

    Je r�it�re car je pense ne pas avoir �t� tr�s tr�s clair dans mes explications.

    Actuellement j'ai 15 series d'input et de select dont les noms prennent des $i en fonction de la boucle FOR .. Tout est OK

    <select name="nom_1" id="nom_1" class="form-control tooltips" onchange="envoi(\'nom_1\',1);" data-original-title="Nom Personne" data-placement="bottom"><option disabled>Nom</option>';if ($clcred['nom_1']<>''){echo '<option value="'.$clcred['nom_1'].'" selected="selected">'.$nclcred.'</option>';} echo '<option value=""></option><option value="1">Pierre</option><option value="2">Jean</option></select>
    <select name="sex_1" id="sex_1" class="form-control tooltips" onchange="envoi(\'ncltyp_1'\',1);" data-original-title="Sexe Personne" data-placement="bottom"><option disabled>Nom</option>';if ($clcred['sex_1']<>''){echo '<option value="'.$clcred['sex_1'].'" selected="selected">'.$ncltyp.'</option>';} echo '<option value=""></option><option value="1">Homme</option><option value="2">Ierre</option></select>
    <input type="text" class="form-control tooltips" id="age_1" name="age_1" value="'.$clcred['age_1'].'" placeholder="Age" onblur="envoi(\'age_1\',1)" data-original-title="Age" data-placement="bottom">

    <select name="nom_2" id="nom_2" class="form-control tooltips" onchange="envoi(\'nom_2\',2);" data-original-title="Nom Personne" data-placement="bottom"><option disabled>Nom</option>';if ($clcred['nom_2']<>''){echo '<option value="'.$clcred['nom_2'].'" selected="selected">'.$nclcred.'</option>';} echo '<option value=""></option><option value="1">Pierre</option><option value="2">Jean</option></select>
    <select name="sex_2" id="sex_2" class="form-control tooltips" onchange="envoi(\'ncltyp_2'\',2);" data-original-title="Sexe Personne" data-placement="bottom"><option disabled>Nom</option>';if ($clcred['sex_2']<>''){echo '<option value="'.$clcred['sex_2'].'" selected="selected">'.$ncltyp.'</option>';} echo '<option value=""></option><option value="1">Homme</option><option value="2">Ierre</option></select>
    <input type="text" class="form-control tooltips" id="age_2" name="age_2" value="'.$clcred['age_2'].'" placeholder="Age" onblur="envoi(\'age_2\',2)" data-original-title="Age" data-placement="bottom">

    etc.... grace a la boucle for .. donc jusqu' 15

    ce que je voudrais c'est supprimer mon script de boucle for, n'avoir que la premiere ligne et qu'en cliquant sur un bouton je rajoute des lignes, cela fonctionne sauf que je ne parviens pas quand je rappelle un fichier d'une personne a afficher le nombre de ligne deja precedemmement remplies et donc lire les donn�es precedemment enregistr�es ..

    Mon formulaire ne sauvegarde pas les donn�es avec le POST mais plutot en appelant la fonction envoi()
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function envoi (idA,nb) {
    idC= 'S'+idA;
    var idC = document.getElementById(idA).value;
    var xhr_object = null;
    if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else {alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");return;}
    xhr_object.open("POST", "sauve.php?personne=<?php echo $personne;?>&nb="+nb+"&champ="+idA+"&"+idA+"="+idC, true);
    xhr_object.onreadystatechange = function() {if(xhr_object.readyState == 4) {}}
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    var data = "personne=<?php echo $personne;?>&nb="+nb+"&champ="+idA+"&"+idA+"="+idC;
    xhr_object.send(data);
    var idC = document.getElementById(idA); idC.style.border="2px solid #00FF00";
    }
    ->P.S : Je sais j'utilise ici autant le POST que le GET, mais l'un sans l'autre rien ne fonctionne chez moi



    En fait ce que je voudrai c'est un script qui permet de rajouter des lignes de champs mais quand je rappelle cette page il me donne autant de ligne de champ que j'ai sauvegard� d'infos...


    MErci milles fois

  4. #4
    Mod�rateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par d�faut
    Ton probl�me a plus l'air d'�tre sur Javascript que sur la partie PHP.

    Pour l'aspect HTML, n'utilise pas des notation "champ_xxx" mais "champ[xxx]", �a te permet de travailler sur des tableaux PHP et donc de ne pas avoir besoin de savoir combien tu as des valeurs.

    Si tu es s�r que ton probl�me est sur l'�criture du code PHP, alors explique nous ce que doit faire le code au final, �a sera plus clair pour voir le probl�me.
    Ce que je ne vois pas bien, c'est pourquoi tu as besoin de conna�tre le num�ro de la ligne puisque visiblement tu fais les insertions une par une en ajax.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par d�faut
    Imaginons une table dans laquelle, j'ai 20 membres d'une �quipe telle que :

    nbmatch / nom_1 / sex_1 / age_1 / nom_2 / sex_2 / age_2 / ..................................nom_20 / sex_20 / age_20

    J'ai donc besoin d'envoyer via Ajax, la valeur de l'input ou du select par exemple nom_5 dans ma table SQL la ou le champ 'nom_5' existe...

    Voila pourquoi j'ai besoin d'identifier le nom de l'imput par 'nom_X', tout simplement

    du cot� de SQL j'ai :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    		$champ = @$_GET["champ"];	
    		$valeur = @$_GET[$champ];
    		$v_var="`$champ` = '$valeur'";
    		$modif=mysql_query("UPDATE `toto` SET $v_var WHERE `idC`='$idC'");

  6. #6
    Mod�rateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par d�faut
    Tu as une table avec les colonnes nom_1, sex_1, age_2 etc. jusqu'� 15 ? C'est bien �a ?
    Si c'est �a o� va aller ton 16�me membre ? c'est �a ton probl�me peut etre d'ailleurs non ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Xml datasource Probleme de lecture des donn�es
    Par gazzall dans le forum Jasper
    R�ponses: 1
    Dernier message: 29/03/2007, 11h18
  2. R�ponses: 1
    Dernier message: 21/03/2007, 16h43
  3. R�ponses: 1
    Dernier message: 29/11/2006, 12h00
  4. pb de lecture des donn�es fichier .ini
    Par peppena dans le forum C
    R�ponses: 5
    Dernier message: 12/06/2006, 17h45
  5. R�ponses: 7
    Dernier message: 10/06/2004, 21h05

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