Bouton de formulaire ayant 2 actions
Résolu
Aresledieu
Messages postés
32
Date d'inscription
Statut
Membre
Dernière intervention
-
Aresledieu Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
Aresledieu Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
Bonjour (ou Bonsoir),
je suis entrain de créer un formulaire permettant d'ajouter des commentaires, mais il s'avère que je bloque sur la fin de celui-ci.
J'aurai aimé avoir un bouton (un seul et unique) permettant à la fois l'action "submit" et "window.close()" (ou similaire) afin que le formulaire soit posté ou envoyé sur la base de donnée et la page fermée automatiquement après l'envoie.
Merci d'avance...
Toutes les idées sont les bienvenues...
je suis entrain de créer un formulaire permettant d'ajouter des commentaires, mais il s'avère que je bloque sur la fin de celui-ci.
J'aurai aimé avoir un bouton (un seul et unique) permettant à la fois l'action "submit" et "window.close()" (ou similaire) afin que le formulaire soit posté ou envoyé sur la base de donnée et la page fermée automatiquement après l'envoie.
Merci d'avance...
Toutes les idées sont les bienvenues...
A voir également:
- Bouton de formulaire ayant 2 actions
- Whatsapp formulaire opposition - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Diagnostic bouton photo - Accueil - Outils
10 réponses
Merci de ton aide.
J'ai rajouter le "onclick", ce qui donne :
<input type="submit" value="Envoyer" onClick="window.close();"/>
l'action de "onclick"de fait correctement mais le "submit" n'est pas effectué.
Je me suis peut-être trompé dans la synthax, mais je ne pense pas...
Voici tout mon "form" :
<form action="addcom.php" method="post">
Pseudo : <input type="text" name="pseudo"/><br/>
URL : <input type="text" name="url"/><br/>
Mail : <input type="text" name="mail"/><br/>
<textarea name="contenu" style="width:500px;height:200px"></textarea><br/>
<input type="submit" value="Envoyer" onClick="window.close();"/>
</form>
J'ai rajouter le "onclick", ce qui donne :
<input type="submit" value="Envoyer" onClick="window.close();"/>
l'action de "onclick"de fait correctement mais le "submit" n'est pas effectué.
Je me suis peut-être trompé dans la synthax, mais je ne pense pas...
Voici tout mon "form" :
<form action="addcom.php" method="post">
Pseudo : <input type="text" name="pseudo"/><br/>
URL : <input type="text" name="url"/><br/>
Mail : <input type="text" name="mail"/><br/>
<textarea name="contenu" style="width:500px;height:200px"></textarea><br/>
<input type="submit" value="Envoyer" onClick="window.close();"/>
</form>
et en passant par une fct JS qui va tester que l'envoi se fait avant le close
<script type="text/javascript"> function submit_close(){ var envoi=document.form1.submit(); if(envoi){ window.close(); } } </script> <form name="form1" action="addcom.php" method="post"> Pseudo : <input type="text" name="pseudo"/><br/> URL : <input type="text" name="url"/><br/> Mail : <input type="text" name="mail"/><br/> <textarea name="contenu" style="width:500px;height:200px"></textarea><br/> <input type="button" value="Envoyer" onClick="submit_close();"/> </form>
J'ai modifié le "form" par ce que tu m'as donné et j'ai le droit à une erreur...
"Erreur SQL !
SELECT * FROM news WHERE id=
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"
"Erreur SQL !
SELECT * FROM news WHERE id=
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Si cette requette est dans le script cible c'est que le formulaire a bien été posté
regardes ta requette de plus près
regardes ta requette de plus près
J'ai regardé dans ma base de donné et les données y sont bien enregistrées.
Mais pourquoi ai-je cette erreur et pourquoi les données qui sont appelées par :
"$sql="SELECT * FROM comment WHERE news_id=$id ORDER BY id ASC";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data2=mysql_fetch_assoc($req)){
echo "------------------<br/>";
echo "<font color=#033><b>Son pseudo :</font></b> ";
echo $data2['pseudo'];
echo "<br/>";
echo "<font color=#033><b>Son commentaire :</font></b> ";
echo $data2["contenu"];
echo "<br />";
echo "------------------<br/>";
"
ne sont pas affichées... ?
Je suis désolé de t'embêter avec toutes mes questions... Et merci encore de ton aide.
Voici tout mon "form" :
<?php
require "config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
$id=$_GET['id'];
$sql="SELECT * FROM news WHERE id=$id";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data=mysql_fetch_assoc($req);
echo "<h1><font color=#600>{$data["titre"]}</font></h1>";
echo "<p align\"right\"> du ".date("j/m/Y à G:i",strtotime($data["date"]))."</p>";
echo "<p>{$data["contenu"]}</p>";
$sql="SELECT * FROM comment WHERE news_id=$id ORDER BY id ASC";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data2=mysql_fetch_assoc($req)){
echo "------------------<br/>";
echo "<font color=#033><b>Son pseudo :</font></b> ";
echo $data2['pseudo'];
echo "<br/>";
echo "<font color=#033><b>Son commentaire :</font></b> ";
echo $data2["contenu"];
echo "<br />";
echo "------------------<br/>";
}
?>
<hr/>
<script type="text/javascript">
function submit_close(){
var envoi=document.form1.submit();
if(envoi){
window.close();
}
}
</script>
<form name="form1" action="addcom.php" method="post">
Pseudo : <input type="text" name="pseudo"/><br/>
URL : <input type="text" name="url"/><br/>
Mail : <input type="text" name="mail"/><br/>
<textarea name="contenu" style="width:500px;height:200px"></textarea><br/>
<input type="button" value="Envoyer" onClick='submit_close();'/>
</form>
après une erreur s'est peut-être glissée
Mais pourquoi ai-je cette erreur et pourquoi les données qui sont appelées par :
"$sql="SELECT * FROM comment WHERE news_id=$id ORDER BY id ASC";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data2=mysql_fetch_assoc($req)){
echo "------------------<br/>";
echo "<font color=#033><b>Son pseudo :</font></b> ";
echo $data2['pseudo'];
echo "<br/>";
echo "<font color=#033><b>Son commentaire :</font></b> ";
echo $data2["contenu"];
echo "<br />";
echo "------------------<br/>";
"
ne sont pas affichées... ?
Je suis désolé de t'embêter avec toutes mes questions... Et merci encore de ton aide.
Voici tout mon "form" :
<?php
require "config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
$id=$_GET['id'];
$sql="SELECT * FROM news WHERE id=$id";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data=mysql_fetch_assoc($req);
echo "<h1><font color=#600>{$data["titre"]}</font></h1>";
echo "<p align\"right\"> du ".date("j/m/Y à G:i",strtotime($data["date"]))."</p>";
echo "<p>{$data["contenu"]}</p>";
$sql="SELECT * FROM comment WHERE news_id=$id ORDER BY id ASC";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data2=mysql_fetch_assoc($req)){
echo "------------------<br/>";
echo "<font color=#033><b>Son pseudo :</font></b> ";
echo $data2['pseudo'];
echo "<br/>";
echo "<font color=#033><b>Son commentaire :</font></b> ";
echo $data2["contenu"];
echo "<br />";
echo "------------------<br/>";
}
?>
<hr/>
<script type="text/javascript">
function submit_close(){
var envoi=document.form1.submit();
if(envoi){
window.close();
}
}
</script>
<form name="form1" action="addcom.php" method="post">
Pseudo : <input type="text" name="pseudo"/><br/>
URL : <input type="text" name="url"/><br/>
Mail : <input type="text" name="mail"/><br/>
<textarea name="contenu" style="width:500px;height:200px"></textarea><br/>
<input type="button" value="Envoyer" onClick='submit_close();'/>
</form>
après une erreur s'est peut-être glissée
Je crois même que le problème peut provenir du "addcom.php" dont voici le script :
<?php
require "config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
extract($_POST);
$sql="INSERT INTO comment (pseudo,url,mail,contenu,news_id) VALUES ('$pseudo','$url','$mail','$contenu','$news_id')";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
header("Location: voir2.php?id=$news_id");
?>
car dans la barre d'adresse, j'ai après validation du formulaire :" [...]voir2.php?id=" comme si que la variable "$news_id" se perdait en route.
Les commentaires sont bien enregistrées dans la bdd, mais sous le "news_id" "0" aulieu du numéro de la new...
<?php
require "config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
extract($_POST);
$sql="INSERT INTO comment (pseudo,url,mail,contenu,news_id) VALUES ('$pseudo','$url','$mail','$contenu','$news_id')";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
header("Location: voir2.php?id=$news_id");
?>
car dans la barre d'adresse, j'ai après validation du formulaire :" [...]voir2.php?id=" comme si que la variable "$news_id" se perdait en route.
Les commentaires sont bien enregistrées dans la bdd, mais sous le "news_id" "0" aulieu du numéro de la new...
Il y a qq chose qui cloche dans ton principe:
1- tu ouvre une fenêtre vers ton site qui affiche le formulaire
2- tu veux que ce formualire soit envoyé au serveur
3- et que la fenêtre soit fermée
4- et ensuite que les données de ta base soient renvoyée dans ta fenêtre qui vient d'être fermée
le 3 est en trop
ensuite:
tu cherches a afficher les news coorespondant à un id $id d'ou provient cet id ,
car dans:
$sql="INSERT INTO comment (pseudo,url,mail,contenu,news_id) VALUES ('$pseudo','$url','$mail','$contenu','$news_id')";
tu as bien $news_id qui te transmet l'id par l'url mais d'ou vient-il ?
ton formulaire te poste tout sauf ça
si tu veux voir tous les commentaires provenant d'un pseudo il vaudrait mieux faire WHERE pseudo=$pseudo
et passer cette valeur par l'url
1- tu ouvre une fenêtre vers ton site qui affiche le formulaire
2- tu veux que ce formualire soit envoyé au serveur
3- et que la fenêtre soit fermée
4- et ensuite que les données de ta base soient renvoyée dans ta fenêtre qui vient d'être fermée
le 3 est en trop
ensuite:
tu cherches a afficher les news coorespondant à un id $id d'ou provient cet id ,
car dans:
$sql="INSERT INTO comment (pseudo,url,mail,contenu,news_id) VALUES ('$pseudo','$url','$mail','$contenu','$news_id')";
tu as bien $news_id qui te transmet l'id par l'url mais d'ou vient-il ?
ton formulaire te poste tout sauf ça
si tu veux voir tous les commentaires provenant d'un pseudo il vaudrait mieux faire WHERE pseudo=$pseudo
et passer cette valeur par l'url
Je crois que je vais le refaire en simple, en enlevant la fermeture de la fenêtre, c'est pas dramatique.
Voici le script original :
"voir.php"
<?php
require "config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
$id=$_GET['id'];
$sql="SELECT * FROM news WHERE id=$id";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data=mysql_fetch_assoc($req);
echo "<h1><font color=#600>{$data["titre"]}</font></h1>";
echo "<p align\"right\"> du ".date("j/m/Y à G:i",strtotime($data["date"]))."</p>";
echo "<p>{$data["contenu"]}</p>";
$sql="SELECT * FROM comment WHERE news_id=$id ORDER BY id ASC";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data2=mysql_fetch_assoc($req)){
echo "------------------<br/>";
echo "<font color=#033><b>Son pseudo :</font></b> ";
echo $data2['pseudo'];
echo "<br/>";
echo "<font color=#033><b>Son commentaire :</font></b> ";
echo $data2["contenu"];
echo "<br />";
echo "------------------<br/>";
}
?>
<hr/>
<form action="addcom.php" method="post">
Pseudo : <input type="text" name="pseudo"/><br/>
URL : <input type="text" name="url"/><br/>
Mail : <input type="text" name="mail"/><br/>
<textarea name="contenu" style="width:500px;height:200px"></textarea><br/>
<input type="submit" value="Envoyer"/>
</form>
"addcom.php"
<?php
require "config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
extract($_POST);
$sql="INSERT INTO comment (pseudo,url,mail,contenu,news_id) VALUES ('$pseudo','$url','$mail','$contenu','$news_id')";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
header("Location: voir.php?id=$news_id");
?>
avec celui-ci, les infos sont bien enregistrées et apparaissent correctement sur la page où les commentaires sont postés.
Avec ce script, le commentaire est ajouté, mais la page ne ferme pas, et je n'ai pas de pb de requêtes SQL.
Je te remercie de m'avoir aidé, et d'avoir pris de ton temps.
Voici le script original :
"voir.php"
<?php
require "config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
$id=$_GET['id'];
$sql="SELECT * FROM news WHERE id=$id";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data=mysql_fetch_assoc($req);
echo "<h1><font color=#600>{$data["titre"]}</font></h1>";
echo "<p align\"right\"> du ".date("j/m/Y à G:i",strtotime($data["date"]))."</p>";
echo "<p>{$data["contenu"]}</p>";
$sql="SELECT * FROM comment WHERE news_id=$id ORDER BY id ASC";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data2=mysql_fetch_assoc($req)){
echo "------------------<br/>";
echo "<font color=#033><b>Son pseudo :</font></b> ";
echo $data2['pseudo'];
echo "<br/>";
echo "<font color=#033><b>Son commentaire :</font></b> ";
echo $data2["contenu"];
echo "<br />";
echo "------------------<br/>";
}
?>
<hr/>
<form action="addcom.php" method="post">
Pseudo : <input type="text" name="pseudo"/><br/>
URL : <input type="text" name="url"/><br/>
Mail : <input type="text" name="mail"/><br/>
<textarea name="contenu" style="width:500px;height:200px"></textarea><br/>
<input type="submit" value="Envoyer"/>
</form>
"addcom.php"
<?php
require "config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
extract($_POST);
$sql="INSERT INTO comment (pseudo,url,mail,contenu,news_id) VALUES ('$pseudo','$url','$mail','$contenu','$news_id')";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
header("Location: voir.php?id=$news_id");
?>
avec celui-ci, les infos sont bien enregistrées et apparaissent correctement sur la page où les commentaires sont postés.
Avec ce script, le commentaire est ajouté, mais la page ne ferme pas, et je n'ai pas de pb de requêtes SQL.
Je te remercie de m'avoir aidé, et d'avoir pris de ton temps.