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 :

Javascript + fonction php


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    D�cembre 2008
    Messages
    29
    D�tails du profil
    Informations personnelles :
    �ge : 36

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 29
    Par d�faut Javascript + fonction php
    Bonsoir,
    Bon je vais peut �tre me faire lyncher pour oser poser une question surement stupide ^^ farfelu sortit d'un imaginaire inexistant
    Bref pour m'entrainer au php et au Javascript je code un petit site perso.
    L'une de mes pages me permet d'ajouter des commentaires sur des articles.
    Bref ma page AjCom.php contient inclue les fichiers FonctionPHP.php et FonctionJavaScript.js
    Et un formulaire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <form name='formulaire' onSubmit='return Contact_Validator();' method='post' enctype='multipart/form-data' >
    	<h3>Pseudo : <input name='Pseudo' id='Pseudo' type='text' />
    	</h3>
     
    	<h3>E Mail : <input name='Mail' id='Mail' type='text' />
    	</h3>
    	<h3>Date: <input name='Date' id='Date' type='text' />
    	</h3>
    	<div align='right'>
    	  <textarea name='TextCom' id='TextCom' cols='50' rows='10'>Entrez votre texte ICI</textarea>
    	  <input name='Annuler' type='button' value='Annuler'/>
    	  <input name='Valider' type='button' value='Valider' onClick='document.pressed=this.value'
    />
    </div></form>
    la fonction Javascript appel� est la suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <SCRIPT LANGUAGE="JavaScript">
    function Contact_Validator()
    {	
    	if (document.pressed == "Valider")
    	{
    	   document.formulaire.action="<? CreCom($_GET['page'],$_POST['Pseudo'],$_POST['Mail'],$_POST['TextCom'],$_POST['Date'])?>";
    	}
    }
    </script>
    Et la fonction php qu'il appelle :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?
    function CreCom($idActu,$Pseudo,$Email,$TxtCom,$Date)
    {
    	$requete="INSERT INTO `pbgn`.`Com` (`IdCom`, `IdActu`, `Pseudo`, `EMail`, `TxtCom`, `Date`) VALUES (NULL, '".$idActu."', '".$Pseudo."', '".$Email."', '".$TxtCom."', '".$Date."');";      
    	$result=mysql_query ($requete);
    	if (!$result) {
    	die("Requête invalide : " . mysql_error());}
    	while ($row = mysql_fetch_assoc($result)) {
    	print "Commentaire ajouté ^^";
        }
    }
    ?>
    Visiblement la fonction javascript appelle bien ma fonction php car dans ma bdd un enregistrement est ins�r� ... Seulement les champs sont tous vide
    Donc bon ne trouvant pas la solution � ma b�tise, je vous demande un petit coup de pouce
    Merci d'avance

  2. #2
    Expert confirm�
    Avatar de le_chomeur
    Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2006
    Messages
    3 653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 3 653
    Par d�faut
    v�rifis que tes donn�es sont post�es , cot� serveur

  3. #3
    Membre averti
    Inscrit en
    D�cembre 2008
    Messages
    29
    D�tails du profil
    Informations personnelles :
    �ge : 36

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 29
    Par d�faut
    Comment je pourrais v�rifier que c'est bien post� cot� serveur ? L� j'ai plut�t l'impression qu'elle ne le sont pas ^^

  4. #4
    Expert confirm�
    Avatar de le_chomeur
    Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2006
    Messages
    3 653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 3 653
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <? CreCom($_GET['page'],$_POST['Pseudo'],$_POST['Mail'],$_POST['TextCom'],$_POST['Date'])?>
    que fais cette m�thode ??

  5. #5
    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
    Salut,
    Juste pour m'oter un doute :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.formulaire.action="<? CreCom($_GET['page'],$_POST['Pseudo'],$_POST['Mail'],$_POST['TextCom'],$_POST['Date'])?>";
    J'esp�re que tu n'attend pas que JavaScript va ex�cuter ta fonction PHP
    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

  6. #6
    Expert confirm�
    Avatar de le_chomeur
    Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2006
    Messages
    3 653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 3 653
    Par d�faut
    d'ou m'a question ...

    cette m�thode renvoi bien une string indiquant l'url � appeler ???

  7. #7
    Membre averti
    Inscrit en
    D�cembre 2008
    Messages
    29
    D�tails du profil
    Informations personnelles :
    �ge : 36

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 29
    Par d�faut
    le_chomeur > s'�tait "cenc�" appel� la fonction php avec en param�tre les valeurs r�cup�r� dans mon formulaire.

    Bovino > Je crois que c'est ce que je cherchais � faire, ce qui n'est pas trop logique, ceci dit �a appelle quand m�me ma fonction mais cela m'ins�re des blanc dans ma table

    Comme je l'ai dit plus t�t je cherche � apprendre (un peu plus) en php/Javascript. Partant du point de vu que le
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    onClick='document.pressed=this.value'
    appelle une fonction javascript, je ne pouvais pas appeler ma fonction php de cette fa�on, en r�flexion avec un ami, il m'a conseill� de l'appeler avec une fonction javascript qui serait elle appel� dans le onClic.
    En cherchent un peu sur le net pour comprendre mon erreur, j'ai cru comprendre que ce que je fait c'est pas possible XD (vu que le php est ex�cut� c�t� serveur/ javascript cot� client ....)
    Fin bref l� j'en suis � pas savoir comment me d�p�trer dans ce que je veux faire.
    Donc ma question en gros c'est ai-je un moyen de m'en sortir via Javascript, o� alors sur quel raisonnement repartir pour appel� ma fonction PHP ?

  8. #8
    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
    j'ai cru comprendre que ce que je fait c'est pas possible XD (vu que le php est ex�cut� c�t� serveur/ javascript cot� client ....)
    Tu as bien compris
    Le seul moyen en JavaScript de r�cup�rer des donn�es venant du serveur est d'utiliser Ajax (un mot qui fait souvent peur, mais ce n'est pas sp�cialement compliqu�).
    http://ajax.developpez.com/cours/
    http://gael-donat.developpez.com/web/intro-ajax/
    http://siddh.developpez.com/articles/ajax/
    http://dmouronval.developpez.com/tut...-requete-ajax/
    par exemple
    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

  9. #9
    Membre averti
    Inscrit en
    D�cembre 2008
    Messages
    29
    D�tails du profil
    Informations personnelles :
    �ge : 36

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 29
    Par d�faut
    C'est ce que j'ai compris aussi
    Mais merci pour les liens ils vont �tre utile ^^ ... J'ai pas encore eue l'occasion de tester Ajax (je mettais fait bouler � l'entretient d'un stage parce que je connaissais pas ce langage d'ailleurs)
    C'est l'occasion de me former un peu sur ce sujet
    Je potasse et teste cela et je viendrais vous dire o� j'en suis, o� crier gr�ce ou help si je tombe sur un os

    Chui une grande fille j'�dite plut�t que double poster
    Avec un peu de potassement de ce que j'ai trouv� en fin d'aprem et une lecture rapide des quelques lien donn�e auparavant (bon ok chui un peu fain�ante j'ia �t� direct aux points qui semblaient me concern�)
    J'en suis l� :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    <script language="javascript" type="text/javascript">
    function getXhr(){
                                    var xhr = null; 
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest(); 
    				else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non supporté par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
                                    return xhr
    			}
     
    function submitForm(url,NumActu,Pseudo,Mail,TextCom,DateCom){
    	var xhr = getXhr()
    	// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						alert(xhr.responseText);
    					}
    				}
    				xhr.open("GET", url, true);
    				xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    				var data = "$NumActu="+NumActu+"$Pseudo="+Pseudo+"$Mail="+Mail+"$TextCom="+TextCom+"$DateCom="+DateCom;
    				alert ("valeurs envoyees: "+data);
    				xhr.send(data);
    			}
    }
    </script>
    Niveau formulaire j'ai chang� cel� :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     <input name='Valider' type='button' value='Valider' onClick='submitForm('FonctionPHP.php',<?php $NumActu.\"','\".&Pseudo.\"','\".&Mail.\"','\".&TextCom.\"','\".&DateCom.\"'\".; ?>);'/>
    Ma fonction php n'a pas chang� ...
    Fin bon cela ne marche pas j'ai du surement oublier quelque chose dans ma tentative d'AJAX,la question est quoi ?
    O� alors j'ai strictement rien comprit et je peu retourner lire plus en d�tail

  10. #10
    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
    Bonsoir,
    xhr.open("GET", url, true);
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    var data = "$NumActu="+NumActu+"$Pseudo="+Pseudo+"$Mail="+Mail+"$TextCom="+TextCom+"$DateCom="+DateCom;
    alert ("valeurs envoyees: "+data);
    xhr.send(data);
    1-Avec la methode "GET" tu dois passer les variables en URL. C'est la methode POST que tu dois utiliser avec cet �criture.
    2-La s�paration des variables est "&" mais pas "$".
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    xhr.open("POST", url, true);
    				xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    				var data = "NumActu="+NumActu+"&Pseudo="+Pseudo+"&Mail="+Mail+"&TextCom="+TextCom+"&DateCom="+DateCom;
    				alert ("valeurs envoyees: "+data);
    				xhr.send(data);
    <input name='Valider' type='button' value='Valider' onClick='submitForm('FonctionPHP.php',<?php $NumActu.\"','\".&Pseudo.\"','\".&Mail.\"','\".&TextCom.\"','\".&DateCom.\"'\".; ?>);'/>
    La chaine sur la fonction submitForm est tronqu�.

  11. #11
    Membre averti
    Inscrit en
    D�cembre 2008
    Messages
    29
    D�tails du profil
    Informations personnelles :
    �ge : 36

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 29
    Par d�faut
    andry.aime > Correction apport�s ^^

    J'en suis l� dans mon javascript :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	xhr.open("POST","FonctionPhp.php", true);
    				Pseudo=document.getElementById('Pseudo').value;
    				Mail=document.getElementById('Mail').value;
    				TextCom=document.getElementById('TextCom').value;
    				DateCom=document.getElementById('DateCom').value;
    				xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    				var data = "NumActu="+NumActu+"&Pseudo="+Pseudo+"&Mail="+Mail+"&TextCom="+TextCom+"&DateCom="+DateCom;
    				alert ("valeurs envoyees: "+data);
    				xhr.send(data);
    			}
    L� j'appelle la fonction javascript dans mon formulaire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <input name='Valider' type='button' value='Valider' onClick='submitForm($NumActu);'/>
    Le probl�me qui se pose c'est au niveau du javascript il r�cup�re bien les valeurs dans mon formulaire sa c'est bon mais toujours aucunes lignes d'ins�rer dans ma table ...
    Ma fonction php CreCom() est stock� dans la page FonctionPhp.php :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?
    function CreCom($idActu,$Pseudo,$Email,$TxtCom,$Date)
    {
    	$requete="INSERT INTO `pbgn`.`Com` (`IdCom`, `IdActu`, `Pseudo`, `EMail`, `TxtCom`, `Date`) VALUES (NULL, '".$idActu."', '".$Pseudo."', '".$Email."', '".$TxtCom."', '".$Date."');";      
    	$result=mysql_query ($requete);
    	if (!$result) {
    	die("Requête invalide : " . mysql_error());}
    	while ($row = mysql_fetch_assoc($result)) {
    	print "Commentaire ajouté ^^";
        }
    }
    ?>
    Donc je suppose que mes donn�es son bien envoy� sur la page car "l'alerte valeur envoy�" est bien affich� mais que ensuite ma fonction Crecom() n'est pas appel� (je pr�cise qu'il y a d'autre fonction php sur la m�me page)
    ... Comme je connais pas trop l'ajax n'y le javascript je suis surement pass� a c�t� de quelque chose

  12. #12
    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
    Salut,
    Tu nous montres que la fonction php. Comment tu r�cup�res les variables envoy�s? Comment tu appelles la fonction (CreCom)?

  13. #13
    Membre averti
    Inscrit en
    D�cembre 2008
    Messages
    29
    D�tails du profil
    Informations personnelles :
    �ge : 36

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 29
    Par d�faut
    Voil� ce qui me manquais dans ma page FonctionPhp.php, je me disais bien qu'il manquait un truc.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    <?
    if (isset($_POST['NomFonction'])=='CreCom')
    {
    CreCom($_POST['NumActu'],$_POST['Pseudo'],$_POST['Mail'],$_POST['TextCom'],$_POST['DateCom']);
    }
    ?>
    Pour ce qui est de mon javascript je lui ai juste rajout� un param�tre suppl�mentaire qui est le nom de la fonction � appeler (ici CreCom)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    			NomFonction='CreCom';
    				Pseudo=document.getElementById('Pseudo').value;
    				Mail=document.getElementById('Mail').value;
    				TextCom=document.getElementById('TextCom').value;
    				DateCom=document.getElementById('DateCom').value;
    				xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    				var data = "NomFonction="+NomFonction+"&NumActu="+NumActu+"&Pseudo="+Pseudo+"&Mail="+Mail+"&TextCom="+TextCom+"&DateCom="+DateCom;
    				//alert ("valeurs envoyees: "+data);
    				xhr.send(data);
    Bref me reste plus qu'a me d�barrasser des pop up d'alerte ci c'est possible ... En tout cas mon probl�me est r�solut

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Appel fonction php dans code javascript
    Par licorne dans le forum G�n�ral JavaScript
    R�ponses: 7
    Dernier message: 05/03/2008, 10h55
  2. [PHP-JS] appel d'une fonction javascript en php
    Par notour dans le forum Langage
    R�ponses: 7
    Dernier message: 13/04/2007, 13h47
  3. [PHP-JS] Passage de param�tre de Javascript vers fonction Php
    Par winnie82 dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 13/07/2006, 10h06
  4. [PHP-JS] une fonction php avec parametres javascript
    Par kagura dans le forum Langage
    R�ponses: 1
    Dernier message: 02/03/2006, 18h10
  5. [Javascript] execution fonction php
    Par marion782 dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 01/02/2006, 22h58

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