Comment envoyer des données dans la bd sur clic de bouton

Fermé
ghisloy Messages postés 89 Date d'inscription mercredi 12 novembre 2014 Statut Membre Dernière intervention 1 août 2016 - 16 févr. 2015 à 08:25
ghisloy Messages postés 89 Date d'inscription mercredi 12 novembre 2014 Statut Membre Dernière intervention 1 août 2016 - 16 févr. 2015 à 13:41
Bonjour, étant novice en php j'ai du mal a comprendre son foncionnement.
je voudrais ajouter un enregistrement dans une base de donnée mysql sur clic bouton Voici ma fonction php qui se situe en haut de ma page php


function ajoutnews1()
{
mysql_connect("localhost", "root","") or die("Echec de connexion au serveur.");; // Connexion à MySQL
mysql_select_db("cfdeco") or die("Echec de sélection de la base.");; // Sélection de la base coursphp
 
echo('bla');
if (isset($_POST['titren1'])) // Si la variable existe
{	
	if (isset($_POST['daten1'])) // Si la variable existe
	{
		if (isset($_POST['descn1'])) // Si la variable existe
		{
			$titre = $_POST('titren1');
			$date = $_POST('daten1');
			$desc = $_POST('descn1');
			echo($titre);
			mysql_query("insert into news (titre_news,texte_news,date_news) values('$titre','$date','$desc')"); // Requête SQL
			mysql_close();
 
		}
	}
}
 
 
}
 


et voici ce qui se trouve sur ma page en bas le code du formulaire

<p>Titre : </br><input type="text" name="titren1"/></p>
<p>Date : </br><input type="text" name="daten1" /><p>
<p>News : </br><textarea name="descn1" id="descn1" rows="10"; cols="50";></textarea><p>
<input type="submit" value="Valider" onclick="="<?php ajoutnews1(); ?>"/>


2 réponses

codeurh24 Messages postés 760 Date d'inscription samedi 29 mars 2014 Statut Membre Dernière intervention 8 septembre 2018 123
Modifié par codeurh24 le 16/02/2015 à 08:37
bonjour, tu a mélanger une fonction php contre une fonction javascript.


l'attribut onclick appartient a javascript et donc attend du javascript.

Tu peux donc supprimer le onclick="......."

et ajouter ajoutnews1(); a la fin du php après cette même fonction qui fini par la dernière accolade }.


tu peut déplacer mysql_close(); juste avant cette même accolade
0
ghisloy Messages postés 89 Date d'inscription mercredi 12 novembre 2014 Statut Membre Dernière intervention 1 août 2016
16 févr. 2015 à 09:11
si je comprend bien, je fais ceci <p>Titre : </br><input type="text" name="titren1"/></p>
<p>Date : </br><input type="text" name="daten1" /><p>
<p>News : </br><textarea name="descn1" id="descn1" rows="10"; cols="50";></textarea><p>
<input type="submit" value="Valider" ="<?php ajoutnews1(); ?>"/>
0
codeurh24 Messages postés 760 Date d'inscription samedi 29 mars 2014 Statut Membre Dernière intervention 8 septembre 2018 123
16 févr. 2015 à 09:45
le ="<?php ajoutnews1(); ?>" appartient a onclick, il faut aussi le supprimer.

Le fait de cliquer sur le bouton du formulaire te redirigera vers la même page si tu a bien configurer action="la page php" et method="post"


Le fait d'être rediriger vers la page qui contient ton php enregistrera dans la bdd.
Mais ce serai trop facile, car en faite tu as encore fait une erreur.
tu a crée une fonction php qui ce nome ajoutnews1()

et n'est exécuter nulle part en php.
c'est pour ça que je tes demander de rajouter ça : ajoutnews1();
mais pas n'importe où.
0
ghisloy Messages postés 89 Date d'inscription mercredi 12 novembre 2014 Statut Membre Dernière intervention 1 août 2016
16 févr. 2015 à 10:15
ok carrément j'enlève et je m'arrête a valider sinon dis moi stp où précisement je dois mettre la fonction

merci
0
codeurh24 Messages postés 760 Date d'inscription samedi 29 mars 2014 Statut Membre Dernière intervention 8 septembre 2018 123
16 févr. 2015 à 13:14

// definition de la fonction (mais pas son execution)
function ajoutnews1(){

// algorithme
}

// execution de la fonction
ajoutnews1();
0
ghisloy Messages postés 89 Date d'inscription mercredi 12 novembre 2014 Statut Membre Dernière intervention 1 août 2016 > codeurh24 Messages postés 760 Date d'inscription samedi 29 mars 2014 Statut Membre Dernière intervention 8 septembre 2018
16 févr. 2015 à 13:41
ok
0
jm-25 Messages postés 140 Date d'inscription samedi 17 janvier 2015 Statut Membre Dernière intervention 30 mars 2015 121
Modifié par jm-25 le 16/02/2015 à 08:53
Salut,

Ton formulaire doit être de la sorte sinon ça ne peut pas marcher:

<form action="page.php" method="post">
<p>Titre : </br><input type="text" name="titren1"/></p>
<p>Date : </br><input type="text" name="daten1" /><p>
<p>News : </br><textarea name="descn1" id="descn1" rows="10"; cols="50";></textarea><p>
<input type="submit" value="Valider"/>
</form>


Donc l'utilisateur rempli les champs, et quand il clique sur le bouton valider, ça passe les variables titren1, daten1 et descn1 à ta "page.php". Après ta page.php traite les données reçues et enregistre les données dans la bdd. Avec ton code seul, rien ne se passera.
0
ghisloy Messages postés 89 Date d'inscription mercredi 12 novembre 2014 Statut Membre Dernière intervention 1 août 2016
16 févr. 2015 à 09:17
jm-25 si je n'ajoute pas <?php ajoutnews1(); ?> est ce que cela ira dans la bd
0