une fonction dans un formulaire

Eléphant du PHP | 130 Messages

10 oct. 2006, 14:30

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

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

10 oct. 2006, 14:40

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" >';
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 130 Messages

10 oct. 2006, 14:51

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

Eléphant du PHP | 130 Messages

10 oct. 2006, 15:56

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

10 oct. 2006, 16:17

Une p'tite erreur de guillemet dans ton form.
echo '<form action="'.$_SERVER['PHP_SELF'].'?doing=add_matiere" method="POST">';