Formulaire

Résolu/Fermé
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 - 2 déc. 2013 à 20:13
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 - 9 déc. 2013 à 20:39
Bonjour,
Je voudrais que mon formulaire est 2 action.
<form action="pageactuel.php" method="post">
<form action="http://monforum/posting.forum" method="POST" name="post" enctype="multipart/form-data" onSubmit="envoiMessage(this)">

J'ai chercher un peu partout sur google mais soit j'arrive pas adapté le code à se que je veux faire, soit je comprend rien.

Si quelqu'un pourrait m'aider s'il vous plait :)

6 réponses

Utilisateur anonyme
2 déc. 2013 à 20:26
Salut, pourquoi ne pas faire un fichier php externe qui traiterais les deux ?

Je vois que le second est pour l'upload, et le premier est pour ?
0
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 6
Modifié par florire le 2/12/2013 à 20:41
pourquoi ne pas faire un fichier php externe qui traiterais les deux ?
C'est à dire ? Je suis pas très bon en php :$

Le premier est pour envoyer certaine donnée récupérer du formulaire sur une base de donné et afficher un code qui à étais générer.
Le deuxième est pour aussi envoyer certaine donnée en message sur un forum.
0
Utilisateur anonyme
2 déc. 2013 à 21:42
re

ce que je veux dire c'est que au lieux de faire deux actions, tu peux faire un fichiers qui traite les deux en un.
0
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 6
2 déc. 2013 à 21:57
Ah ok j'ai compris merci :) et comment faire ceci ? :x
0
Utilisateur anonyme
2 déc. 2013 à 22:03
admettons que tu créer ton fichier externe qui s'appelle traitement.php et que ton formulaire se trouve dans index.php

tu met dans ton form

<form action="traitement.php" method="POST" enctype="multipart/form-data"> 


Ensuite dans ton traitement.php tu fais tes deux script que tu avais prévu de faire.

Et pour sortir du fichier externe (traitement.php) tu met a la fin une redirection

header("Location:index.php");


par exemple pour retourner a l'index.php
0
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 6
2 déc. 2013 à 22:39
Sa fonctionne pour la première action mais pas la deuxième pour posté sur le forum.

formulaire.php
<form action="traitement.php" method="post" enctype="multipart/form-data">
<p>
<input type="hidden" name="lt" value="0" />
<input type="hidden" name="mode" value="newtopic" /> <!-- Un nouveau topic sera créé -->
<input type="hidden" name="topictype" value="0" checked="checked" /> <!-- Value 0: Sujet Normal (1 = post-it / 2 = annonce) -->
<input type="hidden" name="message" value="" /> <!-- Contiendra le texte du message -->
<input type="hidden" name="f" value="77" /> <!-- ID du forum dans lequel le message sera posté-->
<label for="titre"></label><input type="hidden" name="subject" id="titre" value="Video" />

<label for="pseudo">Pseudo:<input type="text" name="pseudo" id="pseudo"/>
<label for="chou">Carte:<input type="text" name="chou" id="chou"/>

<input type="submit" value="jouer" />
</p>
</form>

Les champs cacher servent à envoyer un message sur le forum.

traitement.php
<script type="text/javascript">
function envoiMessage(form)
{
// Créer un message à partir des informations fournies
var txt_message =
"<strong>Carte :</strong> " + form.pseudo.value + '\n'
+"<strong>Nombre :</strong> " + form.chou.value + '\n'
// Insère le texte construit dans le champ caché "message" du formulaire
form.message.value = txt_message;
}
</script>
<?php
Mon code php qui fonctionne (envoyer donné à la base de donné)
?>

Si sa peut aider le formulaire complet pour envoyer message au forum:

<center><script type="text/javascript">
function envoiMessage(form)
{
// Créer un message à partir des informations fournies
var txt_message =
"<strong>Carte :</strong> " + form.pseudo.value + '\n'
+"<strong>Nombre :</strong> " + form.chou.value + '\n'
// Insère le texte construit dans le champ caché "message" du formulaire
form.message.value = txt_message;
}
</script>

<form action="http://xxxxxx.com" method="POST" name="post" enctype="multipart/form-data" onSubmit="envoiMessage(this)">
<input type="hidden" name="lt" value="0" />
<input type="hidden" name="mode" value="newtopic" /> <!-- Un nouveau topic sera créé -->
<input type="hidden" name="topictype" value="0" checked="checked" /> <!-- Value 0: Sujet Normal (1 = post-it / 2 = annonce) -->
<input type="hidden" name="message" value="" /> <!-- Contiendra le texte du message -->
<input type="hidden" name="f" value="77" /> <!-- ID du forum dans lequel le message sera posté-->
<label for="titre"></label><input type="hidden" name="subject" id="titre" value="Video" />

<label for="pseudo">Pseudo:<input type="text" name="pseudo" id="pseudo"/>
<label for="chou">Carte:<input type="text" name="chou" id="chou"/>
<input type="submit" name="post" value="Commander" />
</form>
0
salut, j'ai regarder ton code.

J'ai une question :)

Le message a insérer dans le forum est bien le même que celui enregistrer dans la bdd ? Je pense que oui car les deux formulaires que tu me montre sont les même....


Si c'est le même message, tu as juste a faire une requete là ou tu veux qu'il s'affiche.




׺°"~'"°º×]|I{*------» m3745p10!7 «------*}I|[׺°"~'"°º×
0
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 6
3 déc. 2013 à 17:43
Oui j'ai regrouper les deux formulaire en 1 seul.
Dans ma bdd j'enregistre le champs pseudo, et le champs carte du formulaire et dautre donné mais c'est des variable qui n'ont pas de lien direct avec le formulaire.
Et pour le message sur le forum les champs caché sont les indications pour posté le message. (ou, comment..) et le message envoyé avec les informations rentré dans le formulaire (pseudo, carte) est fait par javascript.

Comment faire la requête ?
Et je te remercie de m'aider :)
0
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 6
3 déc. 2013 à 19:04
C'est peut être plus simple (si on peut le faire) que quand on clic sur le bouton submit sa exécute l'action du formulaire en target="_blank" et que sa actualise la page du formulaire.
0
Utilisateur anonyme
3 déc. 2013 à 19:13
Mais le site c'est toi qui la fait ?

Je te conseille de lire ou relire le site openclassroom.

Quand tu valide un formulaire la page se rafraichit si elle est fait en php.

En fait si tu fais une action sur traitement.php la page est redirigé desus, c'est comme un lien. Si ensuite sur traitement.php tu met une redirection sur ta page de formulaire, elle sera rafraichie
0
Utilisateur anonyme
3 déc. 2013 à 19:14
je sais j'explique mal, je suis désolé
0
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 6
Modifié par florire le 3/12/2013 à 20:15
Bah le forum est fais avec forumactif.
Oui je sais que si je met l'action "formulaire.php" sa rafraichie la page je m'en sert pour que la personne voit sont code qui à étais généré aléatoirement si le formulaire à étais envoyé.
Mais si la page se rafraichie avant de faire l'action pour posté un message sur le forum, cette action ne seras pas réalisé.
T'inquiète j'explique encore plus mal ^^
0
Utilisateur anonyme
3 déc. 2013 à 19:02
salut, tu enregistre tes infos dans la basse de données et aussi tout tes critère de selection (topictype, f....)

et tu fais un requête de ce genre :

SELECT pseudo, message FROM ccm WHERE topictype = '0' AND f = '77' ORDER BY id ASC LIMIT 0,10



biensur c'est un exemple a adapter a ton site
0
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 6
Modifié par florire le 3/12/2013 à 20:05
$message = (je sais pas comment le récupérer car il est fais en javascript :s)
$jeu1 = $_POST['pseudo'];
$jeu1 = $_POST['carte'];
Dans l'ordre id, topictype, message, f, subject, pseudo, carte.

$requete = "INSERT INTO carte VALUES('','newtopic','0','".$message."','77','video','".$pseudo."','".$carte."')";

$requete1 = "SELECT message FROM carte WHERE topictype = '0' AND f = '77' ORDER BY id ASC LIMIT 0,10";

$exc = mysql_query($requete1);

Ensuite j'en fais quoi de la sélection ?
0
Utilisateur anonyme
4 déc. 2013 à 20:26
Salut, on fait autrement, laisse tomber javascript

ton formulaire :

<form action="traitement.php" method="post">
			<p>
				<input type="hidden" name="lt" value="0" />
				<input type="hidden" name="mode" value="newtopic" />
				<input type="hidden" name="topictype" value="0" checked="checked" />
				<input type="hidden" name="f" value="77" />
				<label for="titre"></label>
				<input type="hidden" name="subject" id="titre" value="Video" />
				<label for="pseudo">Pseudo:
					<input type="text" name="pseudo" id="pseudo"/>
					<label for="chou">Carte:
						<input type="text" name="chou" id="chou"/>
						<input type="submit" value="jouer" />
			</p>
		</form>




ton traitement.php :

<?php

		try {

			$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
//tu met tes infos dans la ligne du dessus
		} catch(Exception $e) {

			die('Erreur : ' . $e -> getMessage());

		}

		if (isset($_POST['chou']) && isset($_POST['pseudo'])) {
			$pseudo = htmlspecialchars($_POST['pseudo']);
			$chou = htmlspecialchars($_POST['chou']);

			$message = "<strong>Carte :</strong> " . $pseudo . "<br /><strong>Nombre :</strong>" . $chou . "<br />";
			$requete1 = $bdd -> prepare("INSERT INTO carte(message,topictype,mode,lt,f) VALUES(?,?,?,?,?)");
			$requete1 -> execute(array($message, $_POST['topictype'], $_POST['mode'], $_POST['lt'], $_POST['f']));
			echo $message;
			echo $chou;
			echo $_POST['topictype'];
			echo $_POST['mode'];
			$requete1 -> closeCursor();
			header("Location:index.php");//tu remplace index.php par la page ou tu souhaite être rediriger
		}
		?>
0
Utilisateur anonyme
4 déc. 2013 à 20:27
maintenant je te fais pour afficher 5 minutes :)
0
Utilisateur anonyme
4 déc. 2013 à 20:34
voilà là ou tu veux que sa s'affiche tu fais par exemple :

<?php

		try {

			$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');

		} catch(Exception $e) {

			die('Erreur : ' . $e -> getMessage());

		}

		$requete = $bdd -> query("SELECT message FROM carte WHERE topictype = '0' AND f = '77' AND mode = 'newtopic' AND lt ='0' ORDER BY id ASC LIMIT 0,10");
		while($req = $requete ->fetch()){
			echo $req['message']."<br /><hr /><br />";
		}
		$requete -> closeCursor();
		?>
0
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 6
4 déc. 2013 à 23:52
MERCI de ton aide! :)
0
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 6
4 déc. 2013 à 18:35
J'ai reussi en mettant :

<input type="submit" name="post" value="Commander" onclick="document.forms['form'].action='traitement.php';document.forms['form'].submit();document.forms['form'].action='http://www.MONFORUM.com/posting.forum';document.forms['form'].submit();"/>

Mais sa m'ouvre les 2 actions dans 2 nouveau onglet donc 3 onglet au total c'est génant. Si j'enleve le target="_blank" du "form" sa m'ouvre aucun onglet mais il y a que la deuxième action (posté forum) qui est exécuter. Il y aurais pas moyen d'ouvrir qu'une seul action dans un nouvel onglet ? Ou en invisble ^^ ?

Et merci de votre aide :)
0

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

Posez votre question
Utilisateur anonyme
7 déc. 2013 à 09:27
alors quoi de neuf ?
0
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 6
9 déc. 2013 à 20:39
Génial merci :)
Oublier de mettre résolu ^^
0