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

JavaScript Discussion :

Passer une variable javascript en php


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    22
    D�tails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Par d�faut Passer une variable javascript en php
    Bonjour,
    J'ai lu pas mal de sujet a ce propos mais je n'ai pas r�ussi a trouver une solution qui marchait.

    J'ai une page saisie.php qui ex�cute la fonction suivante pour compter le nombre de lignes :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <!--SCRIPT QUI COMPTE LE NOMBRE DE LIGNES-->
    <script language=javascript>
    function count(tableau){
    	var tableau = document.getElementById(tablecontrat);
    	//Calcul du nombre de ligne dans le tableau 
    	var trs = tableau.getElementsByTagName('tr').length;
     
    	}
     
    </script>
    puis celle ci qui fait le lien vers ma page insert.php (si il y a des erreurs merci de me les dire^^)
    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    <INPUT TYPE="submit" value="Valider La saisie" onclick="count()">

    ma page insert.php, o� je voudrais r�cup�rer mon nombre de lignes (trs) afin de faire une boucle sur une requete pour inserer chaque ligne dans la BDD:
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
     
    include("fonction.connect.php");
    $connect_db = connect();
     
    $trs=$_POST["trs"];
    ....
    ....
    ?>

    voila, sur les forums j'ai vu que l'on devait passer par GET ou POST (c'est ce que je fais ici mais je dois mal l'utiliser....)

    pourriez vous m'�clairer svp?
    merci beaucoup.

    PS : voici l'erreur que je re�ois:
    Notice: Undefined index: trs in C:\Program Files\.....\Insert.php on line 38

  2. #2
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    function count(tableau){
    	var tableau = document.getElementById(tablecontrat);
    	//Calcul du nombre de ligne dans le tableau 
    	var trs = tableau.getElementsByTagName('tr').length;
     
    	}
    Il y a des probl�mes de conception l�...
    Il ne faut pas pr�ciser de param�tre pour ta fonction puisqu'elle n'en a pas besoin...
    Ensuite, tablecontrat, c'est une variable ? Parce que si ce n'est pas le cas et que c'est l'id de ton tableau, il faut le mettre entre quotes.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    function count(){
    	var tableau = document.getElementById('tablecontrat');
    	//Calcul du nombre de ligne dans le tableau 
    	var trs = tableau.getElementsByTagName('tr').length;
     
    	}
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    22
    D�tails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Par d�faut
    Citation Envoy� par Bovino Voir le message
    [CODE]
    Ensuite, tablecontrat, c'est une variable ? Parce que si ce n'est pas le cas et que c'est l'id de ton tableau, il faut le mettre entre quotes.
    en effet c'est l'ID du tableau, j'ai modifi� comme tu me l'as dis merci.
    Ca ne marche toujours pas.

  4. #4
    Membre exp�riment� Avatar de k1rby
    Profil pro
    D�veloppeur Web
    Inscrit en
    Novembre 2008
    Messages
    181
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Novembre 2008
    Messages : 181
    Par d�faut
    Tu as une balise input, j'en d�duit donc que tu as un formulaire en m�thode POST. Fait donc comme suit :
    Code JavaScript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    function count(){
    	var tableau = document.getElementById("tablecontrat");
    	//Calcul du nombre de ligne dans le tableau 
    	var trs = tableau.getElementsByTagName('tr').length;
    	document.forms[0].trs.value = trs;
    }
    Code XHTML : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    <form action="insert.php" method="post" onsubmit="count();">
    	<input type="hidden" name="trs" />
    	[...]
    	<input type="submit" value="Valider La saisie" />
    </form>

  5. #5
    Membre exp�riment�
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Par d�faut
    Bonjour,

    Bon, le temps de r�diger ce roman, je vois qu'il y en a qui ont d�gain� plus vite... mais bon, j'envoie le message qd m�me...

    Si j'ai bien compris, tu souhaites transmettre � ton serveur le nombre de lignes affich�s au niveau du client ?

    Il semble y avoir une erreur dans la fa�on d'appeler ta fonction count().
    Cette fonction prend visiblement un parametre, qui doit �tre l'id de ton tableau je suppose ? Or tu appelles cette fonction sans param�tre lorsque tu click sur ton bouton "submit".

    De plus, dans ta fonction count, tu tentes de r�cup�rer un �l�ment de la page dont l'id est la variable tablecontrat, qui n'est initialis�e nulle part ?
    - Soit il s'agit d'une coquille, et il s'agit de la variable tableau pass� en param�tre ?
    - Soit c'est l'id de ton tableau ? Dans ce cas, il faut l'entourer de quote.


    Ensuite, lorsque ton script est termin�, tu as une variable trs dont la valeur est le nombre de ligne de ton tableau. Toutefois, cette valeur n'a d'existence qu'au niveau de ta page web, et elle n'est jamais transmise au serveur.

    Pour transmettre cette variable � ton serveur, tu dois utiliser un FORM dans ta page (ce qui doit �tre le cas), dans lequel tu vas mettre une balise HTML <INPUT type="hidden" name="trs" id="trs" />. A la fin de ton script, tu vas stocker ta variable trs dans ce champs cach�.

    Tu pourras ainsi r�cup�rer cette valeur au niveau de ton script php.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <!--SCRIPT QUI COMPTE LE NOMBRE DE LIGNES-->
    <script language=javascript>
    function count(idTableau){
    var tableau = document.getElementById(idTableau);
    //Calcul du nombre de ligne dans le tableau 
    var trs = tableau.getElementsByTagName('tr').length;
     
    // Stockage de la variable trs dans le champs caché portant le même nom
    document.getElementById('trs').value = trs;
    }
     
    </script>
    Ta page saisie.php :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    <FORM ACTION="insert.php" METHOD="POST">
    <INPUT TYPE="hidden" name="trs" id="trs" />
    ...
    <INPUT TYPE="submit" value="Valider La saisie" onclick="count('tablecontrat')">
    ...
    </FORM>
    Ta page insert.php :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
     
    include("fonction.connect.php");
    $connect_db = connect();
     
    $trs=$_REQUEST["trs"]; // avec la variable $_REQUEST, tu ne te préoccupes pas de savoir s'il s'agit d'un POST ou d'un GET
    ....
    ....
    ?>

  6. #6
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    22
    D�tails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Par d�faut
    Super merci beaucoup �a marche!

    Maintenant j'aurais une autre petite question s'il vous plait^^

    Le probl�me se situe au niveau de la requete, je ne sais pas comment dire qu'il doit cr�er un nouvel enregistrement pour chaque ligne,
    voici ma boucle dans insert.php:
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    for($i=1; $i<$trs; $i++)
    {
    $query2="INSERT INTO contrat(NumClient,NumContrat,JourDebut,MoisDebut,AnneeDebut,JourFin,MoisFin,AnneeFin,NomTypeContrat,Actif,MontantHT,Periodicite,Terme,Paiement) VALUES ('$NumClient','$NumContrat','$JourDebut','$MoisDebut','$AnneeDebut','$JourFin','$MoisFin','$AnneeFin','$NomTypeContrat','$Actif','$MontantHT','$Periodicite','$Terme','$Paiement')";
    mysql_query($query2) or die(mysql_error());
    }
    je ne sais pas comment dire qu'au 1er passage il doit prendre NumContrat,Numclient... de la ligne 1, au 2eme passage celui de la ligne 2...

    voici ma page de saisie:

    (a savoir le tableau a un nombre de cases variable si l'ont appuie sur ajouter contrat; il y a une case de plus...)

    voici comment j'ai fait pour ajouter des contrats:
    faut-il dire quelque chose du genre NumContrat[i] avec un "i" qui s'incr�mente a chaque passage?

    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
    21
    22
    23
    24
    25
    26
    27
     
    <script language="javascript">
    var numero=0;
    function AddRow0(){
    	numero++;
    	var newRow = document.getElementById('tablecontrat').insertRow(-1);
    	var newCell = newRow.insertCell(0);
    	newCell.align = 'center';
    	newCell.innerHTML = '<input type="text" name="NumContrat" 
    id="NumContrat" size="10">';
    ...
    ...
    var newCell = newRow.insertCell(5);
    	newCell.align = 'center';
    	newCell.innerHTML = '<input type="text" name="MontantHT" id="MontantHT" size="10"" >';
    	var newCell = newRow.insertCell(6);
    	newCell.align = 'center';
    	newCell.innerHTML = '<input type="text" name="Periodicite" id="Periodicite" size="10">';
    	var newCell = newRow.insertCell(7);
    	newCell.align = 'center';
    	newCell.innerHTML = '<input type="text" name="Terme" id="Terme" size="17">';
    	var newCell = newRow.insertCell(8);
    	newCell.align = 'center';
    	newCell.innerHTML = '<INPUT TYPE="radio" name="Paiement" id="Paiement" value="Effectue" checked>Effectu&eacute;';
    	var newCell = newRow.insertCell(9);
    	newCell.align = 'center';
    	newCell.innerHTML = '<INPUT TYPE="radio" name="Paiement" id="Paiement" value="Non Effectue">Non Effectu&eacute;';

    merci


    edit: Merci quand m�me BaBeuH �a m'a permis de comprendre mieux

  7. #7
    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
    cr�er de nouveaux objets de form avec des innerHTML est suicidaire ...
    Voir les contributions ..
    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 !

  8. #8
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    22
    D�tails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Par d�faut
    Citation Envoy� par SpaceFrog Voir le message
    cr�er de nouveaux objets de form avec des innerHTML est suicidaire ...
    Voir les contributions ..
    Ha bon? Peux tu me dire pourquoi cela? (d�sol� je d�bute en d�veloppement...)
    les cases cr��es gr�ce � �a sont ajout�es au tableau lorsque l'ont clique que un bouton.

    Sinon tu n'a pas d'id�e pour mon probl�me?

  9. #9
    R�dacteur/Mod�rateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par d�faut
    cr�er de nouveaux objets de form avec des innerHTML est suicidaire ...
    Voir les contributions ..
    Voir le FAQ.

  10. #10
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    22
    D�tails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Par d�faut
    Voila j'ai r�solu mon probl�me les enregistrements on bien lieux mais j'ai un autre soucis
    je r�cup�re mes valeur de cete fa�on:

    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    $NomTypeContrat=$_POST["NomTypeContrat"][$numero];
    $Actif = isset($_POST['Actif'][$numero])?$_POST['Actif'][$numero]:"Oui"; 
    $JourDebut=intval($_POST["JourDebut"][$numero]);
    ...
    ...

    et je les enregistre comme cela:

    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    $query2="INSERT INTO contrat(NumClient,NumContrat,JourDebut,MoisDebut,AnneeDebut,JourFin,MoisFin,AnneeFin,NomTypeContrat,Actif,MontantHT,Periodicite,Terme,Paiement) VALUES ('$NumClient','$NumContrat','$JourDebut','$MoisDebut','$AnneeDebut','$JourFin','$MoisFin','$AnneeFin','$NomTypeContrat','$Actif','$MontantHT','$Periodicite','$Terme','$Paiement')";
    mysql_query($query2) or die(mysql_error());

    ($numero correspond au num�ro de la ligne du tableau � envoyer)

    le probl�me c'est que c'est la 2�me ligne (et derni�re ligne) qui est transmise 2 fois dans ma BDD (et c'est normal au vue du code), si je fais un echo $numero je vois "2" (lignes 0 et 1, donc tout va bien)

    j'ai essay� de faire un for($numero=0;$numero<$nbligne;$numero++) au moment de d�clarer les variables mais j'ai un message d'erreur.

    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    for($numero=0;$numero<$trs;$numero++){
    $NomTypeContrat=$_POST["NomTypeContrat"][$numero];
    $Actif = isset($_POST['Actif'][$numero])?$_POST['Actif'][$numero]:"Oui"; 
    $JourDebut=intval($_POST["JourDebut"][$numero]);
    $MoisDebut=$_POST["MoisDebut"];}

    Notice: Undefined variable: "celles entre le FOR" in C:\Program Files\EasyPHP 3.0\www\UPNETWORKS\Insert.php on line 41
    auriez vous une petite astuce pour qu'il ex�cute la requ�te pour mes 2 lignes.
    Merci

Discussions similaires

  1. [AJAX] Passer une variable javascript � du php
    Par wallouxx dans le forum jQuery
    R�ponses: 3
    Dernier message: 01/10/2014, 09h18
  2. R�ponses: 2
    Dernier message: 15/12/2012, 15h42
  3. Passer une variable javascript en php
    Par dam28800 dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 18/12/2009, 15h27
  4. passer une variable javascript � un script php
    Par kawther dans le forum EDI, CMS, Outils, Scripts et API
    R�ponses: 7
    Dernier message: 30/03/2007, 17h21
  5. [PHP-JS] Passer une variable javascript en php
    Par bibom dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 11/08/2006, 20h39

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