option() formulaire et php :/

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : option() formulaire et php :/

par anselme » 15 juin 2005, 19:58

oook d'accord... c'est ce que je craignais, mais je pensais qu'il y avait moyen... bon du coup a quoi il pourrait bien servir ce formulaire?





je vais m'y prendre tottalement differement alors... en tout cas merci


A+

par Cyrano » 15 juin 2005, 19:42

Pour la simple raison (probable) que tu dois sélectionner une ligne et cliquer sur le submit ensuite pour envoyer quelque chose.

Si tu ajoutes une ligne ou insère ou retire ou ce que tu veux et que tu cliques sur le boutons sans sélectionner de ligne, alors tu n'envoies rien du tout.

par anselme » 15 juin 2005, 19:23

ah mais non, mais attends, je dis n'importe quoi, en fait ca marche pas du tout quand j'affiche le contenu de liste, il y a rien dedans
<?

if (isset($_POST['submit']))
{
  echo "je suis la<br>";
  $i = 0;
  while ($_POST['liste'][$i])
    {
      echo "LISTE:".$_POST['liste'][$i].":LISTE<br>";
      $i++;
    }
}

?>

ca affiche rien :/

j'ai l'impression qu'on est pas sur la meme longeur d'onde en fait :)

par anselme » 15 juin 2005, 19:16

oui en fait j'avais pas vu que tu avais fait des modifs, au temps pour moi :/

alors j'ai essaye mais le probleme c'est que ca prends en compte seulement le dernier element inserer dans la liste


en tout cas merci pour ta patience

par Cyrano » 15 juin 2005, 19:03

Bon, je me suis reformatté ce code pour mes propre besoins, voilà ce que ça donne et chez moi, ça fonctionne très bien:
<html>
<head>
<title>Tout JavaScript.com - Info Bulle DHTML</title>
<style>
body {
	font-family: arial, helvetica, sans-serif;
}
h3 {
	text-align: center;
	color: #000099;
}
p {
	font-size: 0.8em;
}
</style>
<script LANGUAGE="JavaScript">
//D'autres scripts sur http://www.toutjavascript.com
//Si vous utilisez ce script, merci de m'avertir ! < [email protected] >
function Ajouter(form)
{
    var o=new Option(form.libelle.value,form.valeur.value);
    form.liste.options[form.liste.options.length]=o;
}
function Inserer(form)
{
    var o=new Option(form.libelle.value,form.valeur.value);
    if(form.liste.options.selectedIndex>=0)
    {
        form.liste.options.length++;
        for (var i=form.liste.options.length-1;i>form.liste.options.selectedIndex;i--)
        {
            var p=new Option(form.liste.options[i-1].text,form.liste.options[i-1].value);
            form.liste.options[i]=p;
        }
        form.liste.options[form.liste.options.selectedIndex]=o;
    }
    else
    {
        alert("Insertion impossible. Sélectionnez une ligne");
    }
}
function Supprimer(list)
{
    if (list.options.selectedIndex>=0)
    {
        list.options[list.options.selectedIndex]=null;
    }
    else
    {
        alert("Suppression impossible : aucune ligne sélectionnée");
    }
}
function SupprimerTout(list)
{
    list.options.length=0;
}
</script>
</head>
<body bgcolor="#FFFFFF">
<h3>Ajouter, insérer et supprimer une ligne dans une liste</h3>
<p>Ce script est tiré de la page de conseil "Trucs et Astuces de formulaire" sur <span style="font-weight: bold"><a href="http://www.toutjavascript.com" target="_blank">Tout JavaScript.com</a></span></p>
<form name="formulaire" action="liste.php" method="post">
  <p>Ce script permet d'ajouter dynamiquement des éléments dans une liste, sans rechargement de la page (nécessite des versions 4 et + de Netscape ou Internet Explorer).<br>
  Entrez le libellé et la valeur dans les champs ci-dessous, cliquez sur Ajouter ou Insérer.</p>
  Libellé : <input type="text" name="libelle" size=15 value="texte"><br>
  - Valeur : <input type="text" name="valeur" size=15 value="texte"><br>
  <input type="button" Value="Ajouter" onClick="Ajouter(this.form)"><br>
  <input type="button" Value="Insérer" onClick="Inserer(this.form)"><br>
  <p>Sélectionnez une ligne de la liste pour voir le détail</p>
  <select align=top name="liste" size=3 onChange="alert('Libellé : '+this.options[this.selectedIndex].text+'\nValeur : '+this.options[this.selectedIndex].value)">
  <option value="Initiale">Ligne initiale</option>
  </select><br>
  <br>
  <input type="button" value="Supprimer la sélection" onClick="Supprimer(this.form.liste)"><br>
  <input type="button" value="Supprimer tout" onClick="SupprimerTout(this.form.liste)"><br>
  <input type="submit" value="submit" name="submit"><br>
  <p>Le bouton Ajouter ajoute à la fin de la liste la ligne.<br>
  Le bouton Insérer insère la nouvelle ligne avant la ligne sélectionnée.<br>
  Le bouton Supprimer la sélection supprime la ligne sélectionnée dans la liste.<br>
  Le bouton Supprimer tout supprime toutes les lignes.</p>
</form>
<br>
</font>
</body>
</html>
Fais un copier/coller et teste le, tu verras bien.

par anselme » 15 juin 2005, 18:31

ben non justement, ca ne marche pas

ok pour les balises, me suis chier dessus, mais le resultat est identique, cad pas de resultat dans le deuxieme echo affiche absolument rien


j'ai laisse le code tel quel pour etre honnete, c'est tout, j'ai voulu mettre quelques truc en gras dedans, mais ca ne marchait pas

par Cyrano » 15 juin 2005, 18:20

Tu aurais pu le faire aussi bien toi-même en faisant un peu de ménage dans le code, ne serait-ce que pour le rendre lisible: il fonctionne très bien:
<?
echo $_POST['libelle'];
echo "LISTE:".$_POST['liste'][0].":LISTE<br>";
?>
<html>
<head>
<title>Tout JavaScript.com - Info Bulle DHTML</title>
<script LANGUAGE="JavaScript">
//D'autres scripts sur http://www.toutjavascript.com
//Si vous utilisez ce script, merci de m'avertir ! < [email protected] >
function Ajouter(form)
{
    var o=new Option(form.libelle.value,form.valeur.value);
    form.liste.options[form.liste.options.length]=o;
}
function Inserer(form)
{
    var o=new Option(form.libelle.value,form.valeur.value);
    if(form.liste.options.selectedIndex>=0)
    {
        form.liste.options.length++;
        for (var i=form.liste.options.length-1;i>form.liste.options.selectedIndex;i--)
        {
            var p=new Option(form.liste.options[i-1].text,form.liste.options[i-1].value);
            form.liste.options[i]=p;
        }
        form.liste.options[form.liste.options.selectedIndex]=o;
    }
    else
    {
        alert("Insertion impossible. Sélectionnez une ligne");
    }
}
function Supprimer(list)
{
    if (list.options.selectedIndex>=0)
    {
        list.options[list.options.selectedIndex]=null;
    }
    else
    {
        alert("Suppression impossible : aucune ligne sélectionnée");
    }
}
function SupprimerTout(list)
{
    list.options.length=0;
}
</script>
</head>
<body bgcolor="#FFFFFF">
<font FACE="Arial" SIZE='-1' COLOR="#000099"><center><big><b>Ajouter, insérer et supprimer une ligne dans une liste</b></big>
</center>
<br>
Ce script est tiré de la page de conseil "Trucs et Astuces de formulaire" sur <b><a href="http://www.toutjavascript.com" target="_blank">Tout JavaScript.com</a></b><br>
<form name="formulaire" action="liste.php" method="post">
  Ce script permet d'ajouter dynamiquement des éléments dans une liste, sans rechargement de la page (nécessite des versions 4 et + de Netscape ou Internet Explorer).<br>
  Entrez le libellé et la valeur dans les champs ci-dessous, cliquez sur Ajouter ou Insérer.<br>
  Libellé : <input type="text" name="libelle" size=15 value="texte"><br>
  - Valeur : <input type="text" name="valeur" size=15 value="texte"><br>
  <input type="button" Value="Ajouter" onClick="Ajouter(this.form)"><br>
  <input type="button" Value="Insérer" onClick="Inserer(this.form)"><br>
  <br>
  Sélectionnez une ligne de la liste pour voir le détail
  <select align=top name="liste" size=3 onChange="alert('Libellé : '+this.options[this.selectedIndex].text+'\nValeur : '+this.options[this.selectedIndex].value)">
  <option value="Initiale">Ligne initiale</option>
  </select><br>
  <br>
  <input type="button" value="Supprimer la sélection" onClick="Supprimer(this.form.liste)"><br>
  <input type="button" value="Supprimer tout" onClick="SupprimerTout(this.form.liste)"><br>
  <input type="submit" value="submit" name="submit"><br>
  <br>
  Le bouton Ajouter ajoute à la fin de la liste la ligne.<br>
  Le bouton Insérer insère la nouvelle ligne avant la ligne sélectionnée.<br>
  Le bouton Supprimer la sélection supprime la ligne sélectionnée dans la liste.<br>
  Le bouton Supprimer tout supprime toutes les lignes.<br>
</form>
<br>
</font>
</body>
</html>
Ceci dit, je te signale que les lignes PHP ajoutées en début de script n'on strictement rien à faire là, elles sont en dehors de la page, avant mêe l'ouverture de la balise <html>

option() formulaire et php :/

par anselme » 15 juin 2005, 18:07

bonjour tout le monde

j'essaye de recupere les valeurs d'un <select>, la liste est vide a la base, et c'est l'utilisateur via la fonction option() en javascript qui la construit, malheureusment j'arrive pas a recuperer les valeurs du <select>...

ma question, est qu'il est possible de recupere les valeurs d'une liste construite a l'aide de la fonction option() via un formulaire php($_POST[..])?

parce que apparement pas :/ ou alors c'est moi qui me goure quelque part

voici le code en question:

Code : Tout sélectionner

<? echo $_POST['libelle']; echo "LISTE:".$_POST['liste'][0].":LISTE<br>"; ?> <HTML> <HEAD> <TITLE>Tout JavaScript.com - Info Bulle DHTML</TITLE> <SCRIPT LANGUAGE="JavaScript"> //D'autres scripts sur http://www.toutjavascript.com //Si vous utilisez ce script, merci de m'avertir ! < [email protected] > function Ajouter(form) { var o=new Option(form.libelle.value,form.valeur.value); form.liste.options[form.liste.options.length]=o; } function Inserer(form) { var o=new Option(form.libelle.value,form.valeur.value); if(form.liste.options.selectedIndex>=0) { form.liste.options.length++; for (var i=form.liste.options.length-1;i>form.liste.options.selectedIndex;i--) { var p=new Option(form.liste.options[i-1].text,form.liste.options[i-1].value); form.liste.options[i]=p; } form.liste.options[form.liste.options.selectedIndex]=o; } else { alert("Insertion impossible. Sélectionnez une ligne"); } } function Supprimer(list) { if (list.options.selectedIndex>=0) { list.options[list.options.selectedIndex]=null; } else { alert("Suppression impossible : aucune ligne sélectionnée"); } } function SupprimerTout(list) { list.options.length=0; } </SCRIPT> </HEAD> <BODY bgcolor="#FFFFFF"> <FONT FACE="Arial" SIZE='-1' COLOR="#000099"> <CENTER><BIG><B>Ajouter, insérer et supprimer une ligne dans une liste</B></BIG></CENTER> <BR> Ce script est tiré de la page de conseil "Trucs et Astuces de formulaire" sur <B><A href="http://www.toutjavascript.com" target="_blank">Tout JavaScript.com<\ /A></B><BR> <FORM name="formulaire" action="liste.php" method="post"> Ce script permet d'ajouter dynamiquement des éléments dans une liste, sans rechargement de la page (nécessite des versions 4 et + de Netscape ou Inte\ rnet Explorer).<BR> Entrez le libellé et la valeur dans les champs ci-dessous, cliquez sur Ajouter ou Insérer.<BR> Libellé : <INPUT type="text" name="libelle" size=15 value="texte"> - Valeur : <INPUT type="text" name="valeur" size=15 value="texte"> <INPUT type="button" Value="Ajouter" onClick="Ajouter(this.form)"> <INPUT type="button" Value="Insérer" onClick="Inserer(this.form)"> <BR><BR> Sélectionnez une ligne de la liste pour voir le détail <SELECT align=top name="liste" size=3 onChange="alert('Libellé : '+this.options[this.selectedIndex].text+'\nValeur : '+this.options[this.selectedInde\ x].value)"> <OPTION value="Initiale">Ligne initiale</OPTION> </SELECT><BR><BR> <INPUT type="button" value="Supprimer la sélection" onClick="Supprimer(this.form.liste)"> <INPUT type="button" value="Supprimer tout" onClick="SupprimerTout(this.form.liste)"> <INPUT type="submit" value="submit" name="submit"> <BR><BR> Le bouton Ajouter ajoute à la fin de la liste la ligne.<BR> Le bouton Insérer insère la nouvelle ligne avant la ligne sélectionnée.<BR> Le bouton Supprimer la sélection supprime la ligne sélectionnée dans la liste.<BR> Le bouton Supprimer tout supprime toutes les lignes.<BR> </FORM> <BR> </FONT></BODY></HTML> <!-- Script développé par Olivier Hondermarck [email protected] --> <!-- D'autres scripts et des conseils sur http://www.toutjavascript.com -->
c'est le script tel quel que j'ai recupere sans mes modifs, simplement en rajoutant le php... si deja ca marche comme ca c bon :)

merci bp!