PHP bouton appel fonction

Résolu/Fermé
leoetevan Messages postés 110 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 16 juillet 2012 - 18 févr. 2010 à 11:07
leoetevan Messages postés 110 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 16 juillet 2012 - 18 févr. 2010 à 12:45
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?
A voir également:

7 réponses

Mopra-L Messages postés 146 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 23 mai 2012 6
18 févr. 2010 à 11:18
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é.


0
leoetevan Messages postés 110 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 16 juillet 2012 2
18 févr. 2010 à 11:27
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?
0
Mopra-L Messages postés 146 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 23 mai 2012 6
18 févr. 2010 à 11:40
Voila ce que tu pourrais faire, en utilisant 2 page :

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
0
leoetevan Messages postés 110 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 16 juillet 2012 2
18 févr. 2010 à 12:01
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
leoetevan Messages postés 110 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 16 juillet 2012 2
18 févr. 2010 à 12:10
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
0
Mopra-L Messages postés 146 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 23 mai 2012 6
18 févr. 2010 à 12:15
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 :)
0
leoetevan Messages postés 110 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 16 juillet 2012 2
18 févr. 2010 à 12:45
Merci à toi pour ces infos en tout cas.
0