Récupérer données

Résolu/Fermé
krm666 Messages postés 12 Date d'inscription lundi 6 février 2012 Statut Membre Dernière intervention 11 juillet 2012 - 10 juil. 2012 à 12:37
krm666 Messages postés 12 Date d'inscription lundi 6 février 2012 Statut Membre Dernière intervention 11 juillet 2012 - 10 juil. 2012 à 14:31
Bonjour,

voici mon problème:

j'ai une page avec 2 radio buttons. Si on clique sur le premier, il affiche un textarea et un bouton d'envoi qui redirige sur une page page1.php.
Si on clique sur le 2ème un input text apparait avec un bouton envoi qui redirige sur la page2.php.
Cela grâce à une fonction javascript.

cependant j'aimerai envoyer les valeurs entrées dans le textarea ou dans le input text (selon qui a été actif) sur la page redirigée grâce au bouton.

est-ce assez clair?
quelqu'un peut-il m'aider, s'il vous plait.

Voici mon code:
<html>
<?php
if ($_POST['txtTexte']) {
echo "submit Envoyer";
$formlarName = "TextQRCode";
} elseif ($_POST['txtURL']) {
echo "submit Prévisualiser";
$formlarName = "URLQRCode";
}
?>

<form class="QRCode" name="form1" method="POST" action="<?php echo $formularName . ".php" ?>">
<fieldset>
<legend> Type de données : </legend>
<label> Quelles données souhaitez-vous envoyer au visiteur : </label><br/>
<input type="radio" name="choix" id="choix1" value="1" onclick="affichage_complementaire('choix1');" ><label class="inline">Texte</label><br/>
<input type="radio" name="choix" id="choix2" value="2" onclick="affichage_complementaire('choix2');"><label class="inline">URL</label><br/>
</fieldset>
<fieldset>
<legend> entrer les données : </legend>
<div id="champ_complementaire"><!-- la sera ecrit le champ --></div><br/>
<span id="boutonEffacer"></span><span id="boutonEnvoyer"></span>
</fieldset>
</form>

<script type="text/javascript">
<!--
function effacerURL()
{
document.getElementById("txtURL").value="";

}

//-->
<!--
function effacerTexte()
{
document.getElementById("txtTexte").value="";
}

//-->

//fonction javascript qui est appelée a chaque fois que l'on clique sur un des deux boutons
function affichage_complementaire(id_radio){
var bouton_radio_clique=document.getElementById(id_radio);
//on vien lire la valeur du bouton qui a été cliqué
if(bouton_radio_clique.value==1){
var complement='Entrer votre texte : <textarea id="txtTexte" name="txtTexte" row="5" cols="30"></textarea>';
var boutonEffacer= '<input type = "reset" value = "Effacer" onClick = "effacerTexte()">';
var boutonEnvoyer= '<input type = "submit" value = "Envoyer" onClick = "location.href="TextQRCode.php">';
if(bouton_radio_clique.value==2){
var complement='Entrer l\'URL : <input type="text" id="txtURL" name="txtURL" value=""/>';
var boutonEffacer='<input type = "reset" value = "Effacer" onClick = "effacerURL()">';
var boutonEnvoyer= '<input type = "submit" value = "Envoyer" onClick = "location.href="URLQRCode.php"">';
}


}
//ecriture du champ compl dans le div
document.getElementById('champ_complementaire').innerHTML=complement;
document.getElementById('boutonEffacer').innerHTML=boutonEffacer;
document.getElementById('boutonEnvoyer').innerHTML=boutonEnvoyer;

}
</script>
</html>




4 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
10 juil. 2012 à 13:41
bon c'est encore moi:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<script type="text/javascript"><!--
	//quand on peut il vaut mieux mettre les fct JS dans <head></head>
//fonction javascript qui est appelée a chaque fois que l'on clique sur un des deux boutons
function affichage_complementaire(id_radio){
	var bouton_radio_clique=document.getElementById(id_radio);	
	var complement='<fieldset><legend> entrer les données : </legend>'; //on affiche ça seulementque quand le bouton radio a été cliqué
	//on vien lire la valeur du bouton qui a été cliqué
	if(bouton_radio_clique.value==1){
		complement+='<br />Entrer votre texte : <textarea id="txtTexte" name="txtTexte" row="5" cols="30"></textarea>';
	}	
	if(bouton_radio_clique.value==2){
		complement+='<br />Entrer l\'URL : <input type="text" id="txtURL" name="txtURL" value="" />';
	}
	complement+='</fieldset>';
	

	//}// si tu mets cette } ici tu vas avoir des pb car elle englobe le test if ...=== 2 dans le test if ==1 !!
	//ecriture du champ compl dans le div
	document.getElementById('champ_complementaire').innerHTML=complement;
	//boutons envoyer et effacer
	var boutonEffacer= '<input name="reffacer" type = "reset" value = "Effacer"  />';
	var boutonEnvoyer= '<input name=""envoyer" type = "submit" value = "Envoyer" />';
	document.getElementById('boutonEffacer').innerHTML=boutonEffacer;
	document.getElementById('boutonEnvoyer').innerHTML=boutonEnvoyer;

}
/*
inutile le bouton type="reset" efface automatiquement ce qu'il y a dans le formulaire
function effacerURL()
{
document.getElementById("txtURL").value="";

}
*/
//-->
</script>
</head>
<?php
/* tu modifies le script appelé lors de l'envoi du formulaire un fois le formulaire envoyé il y a gros pb de chronologie
pourquoi vouloir appeler deux scripts différents ?
de plus tu rajoutes ça dans le bouton submit !!, un bouton type="submit" envoie le formulaire à l'url précisé dans action= de la balise form
il suffit d'appeler par action= un script qui sera codé pour recevoir les données correctement je vais l'appeler traitement.php par exemple

if ($_POST['txtTexte']) {
echo "submit Envoyer";
$formlarName = "TextQRCode";
} elseif ($_POST['txtURL']) {
echo "submit Prévisualiser";
$formlarName = "URLQRCode";
}
*/
?>

<form class="QRCode" name="form1" method="post" action="traitement.php" >
<fieldset>
<legend> Type de données : </legend>
<label> Quelles données souhaitez-vous envoyer au visiteur : </label><br/>
<input type="radio" name="choix" id="choix1" value="1" onclick="affichage_complementaire('choix1');" ><label class="inline">Texte</label><br/>
<input type="radio" name="choix" id="choix2" value="2" onclick="affichage_complementaire('choix2');"><label class="inline">URL</label><br/>



<div id="champ_complementaire"><!-- la sera ecrit le champ --></div><br/>
<span id="boutonEffacer"></span><span id="boutonEnvoyer"></span>
</fieldset>
</form>

</html>

et le script traitement.php

<?php
if(isset($_POST['envoyer'])){
	//le formulaire a été posté, bouton Envoyer cliqué
	//on recupére les valeurs postées
	//suivant ce qui était affiché
	if(isset($_POST['txtTexte']) && $_POST['txtTexte'] !="") {$txtTexte=$_POST['txtTexte'];}else{$txtTexte="";}
	if(isset($_POST['txtURL']) && $_POST['txtURL'] !="") {$txtURL=$_POST['txtURL']};{else{$txtURL="";}
	//ensuite pour utiliser ces valeurs:

		if($txtTexte!=""){
			//tes instructions
		}
		if($txtURL!=""){
			//tes instructions
		}
}


?>
0
krm666 Messages postés 12 Date d'inscription lundi 6 février 2012 Statut Membre Dernière intervention 11 juillet 2012
10 juil. 2012 à 14:11
mais le fait qu'il y ait qu'une page alors qu'il y aura 2 choses différentes à faire, n'est pas un problème?

Car après je vais devoir appeler des APIs pour créer des QR-Codes selon si on a créer du texte ou insérer une url...

ça c'est justement ce que je mets dans traitement.php et qui permettrait de séparer ce que chacun doit faire ?
if($txtTexte!=""){
//tes instructions
}
if($txtURL!=""){
//tes instructions
}

merci beaucoup.
0
krm666 Messages postés 12 Date d'inscription lundi 6 février 2012 Statut Membre Dernière intervention 11 juillet 2012
10 juil. 2012 à 14:18
et le script traitement.php

<?php
if(isset($_POST['envoyer'])){
//le formulaire a été posté, bouton Envoyer cliqué
//on recupére les valeurs postées
//suivant ce qui était affiché
if(isset($_POST['txtTexte']) && $_POST['txtTexte'] !="") {$txtTexte=$_POST['txtTexte'];}else{$txtTexte="";}
if(isset($_POST['txtURL']) && $_POST['txtURL'] !="") {$txtURL=$_POST['txtURL']};{else{$txtURL="";}
//ensuite pour utiliser ces valeurs:

if($txtTexte!=""){
//tes instructions
}
if($txtURL!=""){
echo 'coucou';

}
}


?>

pourquoi mon écho ne s'affiche pas dans ma page traitement.php?
0
krm666 Messages postés 12 Date d'inscription lundi 6 février 2012 Statut Membre Dernière intervention 11 juillet 2012
10 juil. 2012 à 14:31
c'est bon merci bop pour tout...
et j'espère pouvoir encore vous demandez conseil...

car j'aurai encore besoin de votre aide... merci encore.
Bonne journée... ;-)
0