Appel d'une fonction PHP.

Fermé
Utilisateur anonyme - 28 sept. 2013 à 19:36
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 12 oct. 2013 à 23:05
Bonjour,
À l'heure qu'il est, je suis languissant.

Voilà maintenant près de quatre heures que je mène mon expédition dans la demeure du savoir sans parvenir à mes fins.

Pourtant mon interrogation première est simple. Laissez moi vous conter rapidement mon problème.

J'ai des données enregistrées dans une table MySql.
Sur un page de mon site internet, je souhaite que si l'utilisateur clique sur des boutons/liens, ce dernier exécute un script qui lit des données de la table, effectue des modifications, renvoie les données modifiées dans la table et affiche un texte à l'écran ; le tout sans actualiser ou changer de page.

Donc, puisque je fais intervenir ma base de données, le javascript ne correspond pas à mes attentes.

Néanmoins, je comprend qu'il est impossible de n'exécuter une fonction php qu'après avoir cliqué sur un bouton/lien.

Dans la mesure où je ne veux pas d'actualisation, je proscris les formulaires.

Donc. Une première solution serait qu'il soit possible d'interagir avec la base de données depuis une fonction JavaScript. Mais ce n'est pas le cas à ce que je sache.

Une deuxième solution serait sinon d'exécuter une fonction php depuis un "onclick". Mais cela ne se fait guère.

Une troisième idée serait qu'il existe l'équivalent d'un include en js afin d'introduire dans ma page un fichier contenant la fonction php.

Je suis donc perdu. Mais alors j'entends parler d'un certain AJAX. Ce dernier serait capable d'exécuter un fichier php contenant ma fonction à partir d'un onclick. D'accord. Cela correspondrait. Néanmoins après de longues recherches, je n'ai toujours pas compris quelle commande permettrait d'appeler la page php contenant ma fonction.

Est-il possible qu'un prophète m'apporte lumière ?

Quelle instruction correspond à "onclick : Include ce fichier php" ?

Merci bien,
Cordialement,
Une âme égarée.
A voir également:

4 réponses

prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
10 oct. 2013 à 19:28
Bonjour à tous.

Pour ton genre de problème, AJAX est bien la bonne façon de procéder.

Explications:

Tu veux exécuter un script se trouvant sur ton serveur (càd PHP), au moment ou un événement survient du côté client (à savoir un onclick).

Au moment du click, javascript doit donc appeler ta page PHP, et cela se fait via Ajax. Avantage: La page ne se rafraichit pas, la communication se fait de manière totalement transparente pour le visiteur.

Pour transmettre les données en POST à ta page PHP, jquery propose ça: https://api.jquery.com/jQuery.post/

Je te laisse lire la documentation et revenir ici si tu as des questions.

++
1
9

::Néanmoins, je comprend qu'il est impossible de n'exécuter une fonction php qu'après avoir cliqué sur un bouton/lien.

Ah bon ? C'est nouveau en tout cas... c'est le contraire bien sûr vous pouvez exécuter votre PHP quand vous le voulez mais celui ci doit communiquer au serveur puis au client.

::ce dernier exécute un script qui lit des données de la table, effectue des modifications, renvoie les données modifiées dans la table et affiche un texte à l'écran ; le tout sans actualiser ou changer de page.

Faites tout par étape. Votre question sur a demeure du savoir c'est que vous essayez de construire le toit avant d'avoir les fondations. Commencez par des cours de php, 'utilisation d'un formulaire, les fonctions de base, bref ouvrir wamp et taper votre code après on en reparle de la demeure du savoir, c'est assez simple PHP:
90% du travail consiste à utiiser la fonction echo(); qui écrit un texte.
0
::Une deuxième solution serait sinon d'exécuter une fonction php depuis un "onclick". Mais cela ne se fait guère.

Ah bon pourquoi? Parce que tout simplement vous n'avez pas besoin du onClick, vous faites simplement un lien vers le fichier PHP et celui ci s'éxécute.

::Une troisième idée serait qu'il existe l'équivalent d'un include en js afin d'introduire dans ma page un fichier contenant la fonction php.

Sauf que javascript ne permet pas de communiquer avec une base de données.... vous tournez en rond à parler de choses fausses et que vous ne connaissez pas , commencer par apprendre l'utiisation d'un formulaire, des variales d'environnements(GET & POST) et de la manière d'envoyer une requête SQL. Les réponses à vos questions sont là dedans apprenez au lieu de considérer PHP comme javascript.
Ce sont tout les 2 des lanages de script, ils ont comme tout les langage de programmation des structures conditioonneles et boucles logiques mais ne servent pas à la même chose .. donc apprenez au lieu de penser que vous savez et comprenez, ce qui est faux au vu de vos questions.
0
et include existe en js: que faites vous quand vous chargez un fichier .js externe en début de page html à votre avis?
0
Utilisateur anonyme
28 sept. 2013 à 20:21
"vous pouvez exécuter votre PHP quand vous le voulez mais celui ci doit communiquer au serveur puis au client."

Puis-je demander comment ?

"Parce que tout simplement vous n'avez pas besoin du onClick, vous faites simplement un lien vers le fichier PHP et celui ci s'éxécute."

Si je procède ainsi je serais dirigé vers la page php en question et je quittant ainsi ma page actuelle non ?

"Sauf que javascript ne permet pas de communiquer avec une base de données.... "

Justement, je sais pertinemment que c'est impossible. J'essayais d'illustrer mes propos. Pardonnez mon manque de clarté.

"include existe en js"

Ah bon ? Il est possible, au sein d'une fonction js de demander à la fonction d'inclure dans la page actuelle un autre fichier php ? Je suis curieux d'en savoir plus. Peux-tu m'éclairer ?

En espérant une réponse,
Merci beaucoup à toi,
Cordialement,
0
Si je procède ainsi je serais dirigé vers la page php en question et je quittant ainsi ma page actuelle non ?

C'est le principe même d'un langage serveur: le script s'exécute sur le serveur tandis qu'en javascript il s'exécute sur l'ordinateur de l'internaute(client). Là vous confondez aussi affichage et traitement des informations, ce qu'il faut séparer ne serait ce que pour du HTML, la réponse à votre question est qu'avec PHP (comme javascript mais obligé avec PHP) vous devez recharger la page, rien ne vous interdit de recharger la même page.

AJAX comme l'indique prosthetiks est bien la solution et procède avec des métadonnées XML (le 1er A de Ajax=asynchronous) qui sont en général les informations de la base.


Ah bon ? Il est possible, au sein d'une fonction js de demander à la fonction d'inclure dans la page actuelle un autre fichier php ? Je suis curieux d'en savoir plus. Peux-tu m'éclairer ?

Non les 2 langages ne communique pas(sauf qu'il est possible d'écrire du js avec php mais pas l'inverse) mais la fonction include en php c'est charger un autre code pour fonctionner de façon modulaire par exemple ou simplement regrouper des fonctions. Donc elle existe bien en javascript mais elle permet de charger son prope code: du javascript.
Il me semblait pourtant que c'était clair:
que faites vous quand vous chargez un fichier .js externe en début de page html à votre avis?
Il s'agit donc bien de l'équivalent de include php mais en js(et donc pour charger du js tout comme include php permet de charger du code php).

*********************************************************************************************
Sur un page de mon site internet, je souhaite que si l'utilisateur clique sur des boutons/liens, ce dernier exécute un script qui lit des données de la table, effectue des modifications, renvoie les données modifiées dans la table et affiche un texte à l'écran ; le tout sans actualiser ou changer de page.
*********************************************************************************************

Donc il vous faut utiliser Ajax mais vu la complexité de l'utilisation de plusieurs langages dont PHP que vous ne semblez pas maîtriser et le temps de requêtes serveur et bases de données négligeable lors du rechargement de la page je voit pas pourquoi vous n'utilisez pas la méthode conventionnelle d'une architecture 3 tiers: recharger la page à l'identique plus un message :votre requête à bien été effectué ou une nouvelle page.
Vous pouvez éventuellement utilise la méthode GET même si celle ci comporte des risques de sécurité ou alors juste le message qui doit s'afficher en GET est renvoyé et les variables envoyées peuvent être sécurisée(et doivent l'être en POST ou GET).
Mon point est que vous pouvez utiliser Ajax mais que cela ne sert pas à ça, ce que vous voulez faire est généralement fait en php et requêtes sur la bdd sans soucis, c'est même la méthode employée dans 99% des cas(on peut bien sûr remplacer php et mySQL par d'autres technologies équivalentes).
0
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
11 oct. 2013 à 15:12
Sinon tu peux le faire avec NodeJs avec socket.io, plus de problèmes de PHP et d'ajax, et c'est la classe ;)
0
duweb Messages postés 352 Date d'inscription dimanche 30 mai 2010 Statut Membre Dernière intervention 6 mars 2014 72
11 oct. 2013 à 15:43
le plus simple est d'utiliser une classe comme XAJAX ou SAJAX .
0
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
12 oct. 2013 à 23:05
Bonjour,

Personnellement, j'utilise ZEND FRAMEWORK et tout le site en MVC. Sur une page avec formulaire, on entre les données. Elles sont soumises sur le même lien web, donc pour l'utilisateur on n'a pas l'impression de chager de page.

Avec ZF vous pouvez rester sur le même template, ou passer à nouveau sur un template plus général.

C'est plus sécure et plus simple que Ajax.

A+
-2