Page 1 sur 1

une fonction dans un formulaire

Posté : 10 oct. 2006, 14:30
par arno77
Bonjour a tous,
mon probleme est le suivant j'ai crée une fonction qui fait l'insertion des données dans ma base

est ce que l'ecriture suivante est possible?
echo'<form action="insert_sous_matiere()" method="POST" >';
sinon comment puis-je faire? je cherche un tutoriel qui puisse m'aider!
D'avance merci

Posté : 10 oct. 2006, 14:40
par mere-teresa
Non l'écriture suivante n'est pas possible. Il faut faire en 2 temps.

1/ Tu donnes le chemin du fichier PHP qui va recevoir les données en POST.
2/ Dans ce fichier PHP, tu fais appel à ta fonction.

Note : tu peux tout à fait déclarer ta fonction et y faire appel dans le même fichier. Cependant si tu comptes réutiliser ta fonction, je te conseille de la mettre dans un fichier avec toutes tes autres fonctions, et d'utiliser require() ou include() pour pouvoir utiliser ta fonction.


Ta génération de form
echo'<form action="traitement.php" method="POST" >'; 


Ton fichier PHP traitement.php
if(isset($_POST)){//si le formulaire est validé
    insert_sous_matiere();
}
edit : en fait tu peux, si tu veux rester sur le mm fichier PHP, faire tout simplement
if(isset($_POST))
{//form validé
     if($_GET['doing'] == 'add_matiere')
    {
        if(insert_sous_matiere())
       {//effectue l'action et teste si le retour est TRUE
            echo '<p>Matiere ajoutée</p>';
       } 
    }
}


echo'<form action='.$_SERVER['PHP_SELF'].'"?doing=add_matiere" method="POST" >';

Posté : 10 oct. 2006, 14:51
par arno77
if(isset($_POST))
{//form validé
     if($_GET['doing'] == 'add_matiere')
    {
        if(insert_sous_matiere())
       {//effectue l'action et teste si le retour est TRUE
            echo '<p>Matiere ajoutée</p>';
       } 
    }
}


echo'<form action='.$_SERVER['PHP_SELF'].'"?doing=add_matiere" method="POST" >';
merci c'est exactement ce que je cherche a faire

Posté : 10 oct. 2006, 15:56
par arno77
j'ai un autre probleme

il me met le message suivant sans effectuer(logique) l'action
Notice: Undefined index: doing in c:\documents and settings\arnaud\mes documents\site_de_vero\gestion_du_site\function_A\function.php on line 178
Je n'arrive pas a corriger ce probleme

Posté : 10 oct. 2006, 16:17
par charabia
Une p'tite erreur de guillemet dans ton form.
echo '<form action="'.$_SERVER['PHP_SELF'].'?doing=add_matiere" method="POST">';