PHP bouton appel fonction
Résolu
leoetevan
Messages postés
110
Date d'inscription
Statut
Membre
Dernière intervention
-
leoetevan Messages postés 110 Date d'inscription Statut Membre Dernière intervention -
leoetevan Messages postés 110 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai une page html dans laquelle il y a plusieurs champ de texte et un bouton. Je voudrais qu'un clic sur mon bouton fasse appel à une fonction qui elle même fera un insert dans ma base.
Ma fonction est la suivante:
function projSelect ($idPrest, $idProj)
{
alert("je passe bien dans ma fonction");
$projet = $idProj;
$prest = $idPrest;
$dteTag = date("Y-m-d");
mysql_select_db($database_ConnexionPortail, $ConnexionPortail);
$insert_projetSelect = "INSERT INTO tag (idProj, idPres, dteTag, cAc_Selection, cAc_Retenu, devis, montantDevis, montantConclu) VALUES ($projet, $prest, $dteTag, 1, 0, null, null, null)";
$Result1 = mysql_query($insert_projetSelect, $ConnexionPortail) or die(mysql_error());
$insertGoTo = "listProjetActif.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
et le code de mon bouton:
<input type="button" value="Se positionner" onclick="projetSelect(<?php echo $idPrest.','. $idProjet ?>)" />
J'ai l'impression que l'appel ne se fait pas. Vous pourriez m'aider?
J'ai une page html dans laquelle il y a plusieurs champ de texte et un bouton. Je voudrais qu'un clic sur mon bouton fasse appel à une fonction qui elle même fera un insert dans ma base.
Ma fonction est la suivante:
function projSelect ($idPrest, $idProj)
{
alert("je passe bien dans ma fonction");
$projet = $idProj;
$prest = $idPrest;
$dteTag = date("Y-m-d");
mysql_select_db($database_ConnexionPortail, $ConnexionPortail);
$insert_projetSelect = "INSERT INTO tag (idProj, idPres, dteTag, cAc_Selection, cAc_Retenu, devis, montantDevis, montantConclu) VALUES ($projet, $prest, $dteTag, 1, 0, null, null, null)";
$Result1 = mysql_query($insert_projetSelect, $ConnexionPortail) or die(mysql_error());
$insertGoTo = "listProjetActif.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
et le code de mon bouton:
<input type="button" value="Se positionner" onclick="projetSelect(<?php echo $idPrest.','. $idProjet ?>)" />
J'ai l'impression que l'appel ne se fait pas. Vous pourriez m'aider?
A voir également:
- Appeler une fonction php en html
- Fonction si et - Guide
- Appeler en privé - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Editeur html - Télécharger - HTML
- Easy php - Télécharger - Divers Web & Internet
7 réponses
Salut,
Le problème est tout trouvé :
Ta fonction est en PHP.
L'appel a ta fonction est en Javascript.
Or, tu ne peux pas mélanger du Javascript et du PHP, car le PHP n'existe plus une fois la page chargée.
Si tu veux exécuter une fonction PHP après un appel Javascript, il faut, au choix :
-Rediriger vers une autre page, ou recharger la page courante (avec un formulaire, ca se fait très bien)
-Utiliser de l'AJAX, ce qui te permettrait de ne pas avoir à recharger ta page (plus "pratique", mais moins facile).
Voila, j'espère t'avoir un peu aidé.
Le problème est tout trouvé :
Ta fonction est en PHP.
L'appel a ta fonction est en Javascript.
Or, tu ne peux pas mélanger du Javascript et du PHP, car le PHP n'existe plus une fois la page chargée.
Si tu veux exécuter une fonction PHP après un appel Javascript, il faut, au choix :
-Rediriger vers une autre page, ou recharger la page courante (avec un formulaire, ca se fait très bien)
-Utiliser de l'AJAX, ce qui te permettrait de ne pas avoir à recharger ta page (plus "pratique", mais moins facile).
Voila, j'espère t'avoir un peu aidé.
Ok merci je comprends se que tu veux dire. Pour se qui est de l'AJAX, je vais devoir laisser tomber parce que je n'y connais rien du tout. :)
Peux tu m'expliquer comment je dois m'y prendre en détail?
Peux tu m'expliquer comment je dois m'y prendre en détail?
Voila ce que tu pourrais faire, en utilisant 2 page :
Page1.php
et Page2.php
J'ai pas testé, donc y a surement des erreurs, mais c'est l'idée principale :p
Page1.php
<form action="Page2.php" method="POST"> <label>idPrest : </label><input type="text" name="idPrest" /><br/> <label>idProjet : </label><input type="text" name="idProjet " /> <input type="submit" value="Envoyer" /> </form>
et Page2.php
<?php $projet = $_POST['idProjet']; $prest = $_POST['idPrest']; $dteTag = date("Y-m-d"); mysql_select_db($database_ConnexionPortail, $ConnexionPortail); $insert_projetSelect = "INSERT INTO tag (idProj, idPres, dteTag, cAc_Selection, cAc_Retenu, devis, montantDevis, montantConclu) VALUES ($projet, $prest, $dteTag, 1, 0, null, null, null)"; $Result1 = mysql_query($insert_projetSelect, $ConnexionPortail) or die(mysql_error()); $insertGoTo = "listProjetActif.php"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); ?>
J'ai pas testé, donc y a surement des erreurs, mais c'est l'idée principale :p
et dans page 2, je ne met que du code php, pas de doctype comme ça la page ne s'affichera pas puisque renvoyé après l'insert sur une autre page.
C'est bien ça?
En tout cas je te remercie d'avoir pris le temps de me répondre. Je te tiens au courant si ça fonctionne.
C'est bien ça?
En tout cas je te remercie d'avoir pris le temps de me répondre. Je te tiens au courant si ça fonctionne.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ca fonctionne très bien merci encore.
J'aurais une autre petite question. Je ne comprends pas se qui se passe pour la date! Ma table se rempli très bien sauf pour la date qu'il me rempli comme ça 0000-00-00 Tu aurais une idée?
Se que je trouve drole, c'est que dans d'autre page, ça fonctionne très bien. Je ne comprend pas pourquoi ça me fait ça ici
J'aurais une autre petite question. Je ne comprends pas se qui se passe pour la date! Ma table se rempli très bien sauf pour la date qu'il me rempli comme ça 0000-00-00 Tu aurais une idée?
Se que je trouve drole, c'est que dans d'autre page, ça fonctionne très bien. Je ne comprend pas pourquoi ça me fait ça ici
Voila, pas de Doctype ou autre chose, comme ca, la page se redirige directement.
Concernant la date, je pense que la base n'apprécie pas le format YYYY-MM-DD en entrée, mais je ne sais pas vraiment par quoi le remplacer pour que ca fonctionne, désolé ^^'. Essaye avec différentes combinaisons, peut-être, ou en regardant sur Google.
Tant mieux si ca fonctionne, en tout cas :)
Concernant la date, je pense que la base n'apprécie pas le format YYYY-MM-DD en entrée, mais je ne sais pas vraiment par quoi le remplacer pour que ca fonctionne, désolé ^^'. Essaye avec différentes combinaisons, peut-être, ou en regardant sur Google.
Tant mieux si ca fonctionne, en tout cas :)