Balise OPTION avec l'attribut SELECTED
Résolu/Fermé
sabdoul
Messages postés
40
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
22 octobre 2014
-
3 janv. 2013 à 12:51
sabdoul - 4 janv. 2013 à 12:20
sabdoul - 4 janv. 2013 à 12:20
A voir également:
- Balise OPTION avec l'attribut SELECTED
- Option booster free avis - Accueil - Guide opérateurs et forfaits
- Insert boot media in selected boot device and press a key ✓ - Forum Windows 10
- Selected file is not a proper bios ✓ - Forum Windows 10
- Cette option de connexion est désactivée - Forum PC portable
- Option empreinte digitale disparue ✓ - Forum Xiaomi
15 réponses
Bonjour,
afin le dernier code de le père fonctionne.
Merci a tous de m'avoir aider et continuons tous a aider les autres.
merci une fois encore a tous.
Voici le code finalisé
/* cree une liste déroulante */
function createList($tableName, $numCol)
{ $i=1;
$sql = "SELECT " . $numCol . " FROM " . $tableName ;
$this->executeRq($sql);
if($this->rst)
{$nbCols = odbc_num_fields($this->rst); /*nb colonne de la table */
$ch="";
echo '<SELECT NAME="Ch1">';
while (odbc_fetch_row($this->rst))
{$i++;
$champ = odbc_result($this->rst,1);
echo "<OPTION "; if(!isset($_POST["Ch1"])) {$_POST["Ch1"]='chaine de caractère';}
if($champ==$_POST["Ch1"]) { echo "selected= 'selected'";}
echo " VALUE = '" . $champ . "'>". $champ . "</OPTION>";
}
echo "</SELECT>";
}
}
afin le dernier code de le père fonctionne.
Merci a tous de m'avoir aider et continuons tous a aider les autres.
merci une fois encore a tous.
Voici le code finalisé
/* cree une liste déroulante */
function createList($tableName, $numCol)
{ $i=1;
$sql = "SELECT " . $numCol . " FROM " . $tableName ;
$this->executeRq($sql);
if($this->rst)
{$nbCols = odbc_num_fields($this->rst); /*nb colonne de la table */
$ch="";
echo '<SELECT NAME="Ch1">';
while (odbc_fetch_row($this->rst))
{$i++;
$champ = odbc_result($this->rst,1);
echo "<OPTION "; if(!isset($_POST["Ch1"])) {$_POST["Ch1"]='chaine de caractère';}
if($champ==$_POST["Ch1"]) { echo "selected= 'selected'";}
echo " VALUE = '" . $champ . "'>". $champ . "</OPTION>";
}
echo "</SELECT>";
}
}
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
Modifié par Heliotte le 3/01/2013 à 13:03
Modifié par Heliotte le 3/01/2013 à 13:03
Bonjour sabdoul,
function createList .. elle est incomplète où j'ai mal vu !!
Édit:
Pourquoi avoir ajouté des balises php ouvrante et fermante dans le code .. puisque c'est tout php ?
function createList .. elle est incomplète où j'ai mal vu !!
Édit:
Pourquoi avoir ajouté des balises php ouvrante et fermante dans le code .. puisque c'est tout php ?
sabdoul
Messages postés
40
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
22 octobre 2014
3 janv. 2013 à 13:09
3 janv. 2013 à 13:09
oui j'ai pensé a l'utilisation de la balise php dans le code mais ça ne règle pas le problème.
quant à la function createlist elle est correct sauf qu'il y'a une balise fermente qui manque
quant à la function createlist elle est correct sauf qu'il y'a une balise fermente qui manque
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
Modifié par Heliotte le 3/01/2013 à 13:12
Modifié par Heliotte le 3/01/2013 à 13:12
Bonjour,
Tout à fait, une accolade fermante est absente !
Et maintenant .. cela fonctionne ou c'est toujours le même problème ?
Pouvez-vous coller le code rectifié .. merci.
Tout à fait, une accolade fermante est absente !
Et maintenant .. cela fonctionne ou c'est toujours le même problème ?
Pouvez-vous coller le code rectifié .. merci.
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
3 janv. 2013 à 13:18
3 janv. 2013 à 13:18
Bonjour,
Quand vous faites un echo, comme ici $ch = $ch . "<OPTION VALUE = " echo $champ ;" ", la variable $champ ; sera affichée dans la page mais pas dans la liste déroulante !!
Quand vous faites un echo, comme ici $ch = $ch . "<OPTION VALUE = " echo $champ ;" ", la variable $champ ; sera affichée dans la page mais pas dans la liste déroulante !!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sabdoul
Messages postés
40
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
22 octobre 2014
3 janv. 2013 à 13:26
3 janv. 2013 à 13:26
non le problème se trouve pas au niveau de l'accolade fermente c'est dans le copier/coller que j'ai oublier la partie. sinon quand j'enlève les balises [ et les différents attributs au sein de la balise OPTION tous fonctionne correctement mais j'ai d'utilisé l'attribut selected pour pouvoir resté sur le nom sélectionne dans la liste
sabdoul
Messages postés
40
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
22 octobre 2014
3 janv. 2013 à 13:28
3 janv. 2013 à 13:28
sinon voici le code rectifié
/* cree une liste déroulante */
function createList($tableName, $numCol)
{$sql = "SELECT " . $numCol . " FROM " . $tableName ;
$this->executeRq($sql);
if($this->rst)
{$nbCols = odbc_num_fields($this->rst); /*nb colonne de la table */
$ch="";
echo '<SELECT NAME="Ch1">';
while (odbc_fetch_row($this->rst))
{$champ = odbc_result($this->rst,1);
echo $champ;
$ch = $ch . "<OPTION " if($champ == $_POST["Ch1"]){ echo "SELECTED='SELECTED'";}" VALUE = " echo $champ ;" >". $champ . "</OPTION>";
}
echo $ch;
echo "</SELECT>";
}
}
/* cree une liste déroulante */
function createList($tableName, $numCol)
{$sql = "SELECT " . $numCol . " FROM " . $tableName ;
$this->executeRq($sql);
if($this->rst)
{$nbCols = odbc_num_fields($this->rst); /*nb colonne de la table */
$ch="";
echo '<SELECT NAME="Ch1">';
while (odbc_fetch_row($this->rst))
{$champ = odbc_result($this->rst,1);
echo $champ;
$ch = $ch . "<OPTION " if($champ == $_POST["Ch1"]){ echo "SELECTED='SELECTED'";}" VALUE = " echo $champ ;" >". $champ . "</OPTION>";
}
echo $ch;
echo "</SELECT>";
}
}
sabdoul
Messages postés
40
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
22 octobre 2014
3 janv. 2013 à 13:30
3 janv. 2013 à 13:30
le problème est que j'ai une erreur qui s'affiche a l'ecran m'indiquant qu'il ya une erreur de syntaxe au ligne de la balise option
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
Modifié par Heliotte le 3/01/2013 à 13:43
Modifié par Heliotte le 3/01/2013 à 13:43
Est-ce vous attrapez des verrues quand vous dites "Bonjour" ?
Édit:
Vous confondez HTML et PHP .. et vous ne travaillez qu'avec le langage PHP
J'ai décomposé cette partie de code pour mieux comprendre:
Édit:
Vous confondez HTML et PHP .. et vous ne travaillez qu'avec le langage PHP
J'ai décomposé cette partie de code pour mieux comprendre:
$ch = $ch . "<OPTION " if($champ == $_POST["Ch1"]){ echo "SELECTED='SELECTED'";}" VALUE = " echo $champ ;" >". $champ . "</OPTION>";:
$ch = $ch . "<OPTION " if($champ == $_POST["Ch1"]) { echo "SELECTED='SELECTED'"; } " VALUE = " echo $champ ;" >". $champ . "</OPTION>";.. N'y a-t-il pas quelque chose qui cloche ?
sabdoul
Messages postés
40
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
22 octobre 2014
3 janv. 2013 à 15:28
3 janv. 2013 à 15:28
bonjour Helliot,
je vois pas ce qui cloche malheureusement car la syntaxe et le code me semble correct sauf que j'ai une erreur de syntaxe dont je vois pas.
la $ch contient "<OPTION " if($champ == $_POST["Ch1"]){ echo "SELECTED='SELECTED'";}" VALUE = " echo $champ ;" >". $champ . "</OPTION>"; et ensuite on l'affiche juste avant la fermeture de la balise select.
quand au code lui même lorsqu'on sélectionne un champ et qu'on l'envoi a travers le $_post ce champ est comparé a la variable $champ avant de faire de selected auparavant la valeur chaque champ est identifié a travers la l'attribut VALUE.
j'espère que vous compreniez bien maintenant. merci de ton aide
je vois pas ce qui cloche malheureusement car la syntaxe et le code me semble correct sauf que j'ai une erreur de syntaxe dont je vois pas.
la $ch contient "<OPTION " if($champ == $_POST["Ch1"]){ echo "SELECTED='SELECTED'";}" VALUE = " echo $champ ;" >". $champ . "</OPTION>"; et ensuite on l'affiche juste avant la fermeture de la balise select.
quand au code lui même lorsqu'on sélectionne un champ et qu'on l'envoi a travers le $_post ce champ est comparé a la variable $champ avant de faire de selected auparavant la valeur chaque champ est identifié a travers la l'attribut VALUE.
j'espère que vous compreniez bien maintenant. merci de ton aide
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
3 janv. 2013 à 19:03
3 janv. 2013 à 19:03
Bonsoir sabdoul,
Bienvenue chez les fous !
Essayez ceci:
Bienvenue chez les fous !
Essayez ceci:
/* cree une liste déroulante */ function createList($tableName, $numCol) { //$sql = "SELECT " . $numCol . " FROM " . $tableName ; //$this->executeRq($sql); $rst = array("Premier","Deuxième","Troisième","Quatrième"); if($this->rst) { //$nbCols = odbc_num_fields($this->rst); /*nb colonne de la table */ echo '<SELECT NAME="Ch1">'; $ch=""; //while (odbc_fetch_row($this->rst)) foreach ( $tab as $champ ) { //$champ = odbc_result($this->rst,1); //echo $champ; $ch = $ch . "<OPTION " if($champ == $_POST["Ch1"]) { $ch = $ch . "SELECTED='SELECTED'"; } $ch = $ch . " VALUE = " .$champ . " >". $champ . "</OPTION>"; echo $ch; } echo "</SELECT>"; } }
Bonjour Helliot,
Vous avez mis des lignes en commentaire au ces lignes sont nécessaire. je précise que travaille sur une base de données ODBC.
Donc je vous met tous le code que j'ai adapté a votre suggestion mais ce toujours ce message d'erreur(Parse error: syntax error, unexpected 'if' (T_IF) ) au niveau de la ligne de IF.
Voici le code avec la class elle même comportant la fonction de connexion ainsi que la fonction de création de la liste
<?php
class phpOracle
{var $nomUser, $password, $db;
var $rst;
/*connexion à la BD et exécution d'une requête*/
function executeRq($sql)
{/* se connecter a la base ODBC*/
require_once("connect.php"); //inclut le fichier une seule fois
$this->db = DSN;
$this->nomUser = Nom;
$this->password = MPasse;
$connexion = odbc_connect($this->db, $this->nomUser, $this->password);
if(!$connexion)
{echo "Désolé, connexion au serveur impossible\n";
exit;
}
/* executer la requete sur la connection et placer le resultat dans le tableau rst*/
$this->rst = odbc_do($connexion,$sql);
}
/* cree une liste déroulante */
function createList($tableName, $numCol)
{ $i=1;
$sql = "SELECT " . $numCol . " FROM " . $tableName ;
$this->executeRq($sql);
if($this->rst)
{$nbCols = odbc_num_fields($this->rst); /*nb colonne de la table */
$ch="";
echo '<SELECT NAME="Ch1">';
while (odbc_fetch_row($this->rst))
{$i++;
$champ = odbc_result($this->rst,1);
echo $champ ;
$ch = $ch . "<OPTION "
if($champ == $_POST["Ch1"])
{
$ch = $ch . "SELECTED='SELECTED'";
}
$ch = $ch . " VALUE = " .$champ . " >". $champ . "</OPTION>";
}
echo $ch;
echo "</SELECT>";
}
Vous avez mis des lignes en commentaire au ces lignes sont nécessaire. je précise que travaille sur une base de données ODBC.
Donc je vous met tous le code que j'ai adapté a votre suggestion mais ce toujours ce message d'erreur(Parse error: syntax error, unexpected 'if' (T_IF) ) au niveau de la ligne de IF.
Voici le code avec la class elle même comportant la fonction de connexion ainsi que la fonction de création de la liste
<?php
class phpOracle
{var $nomUser, $password, $db;
var $rst;
/*connexion à la BD et exécution d'une requête*/
function executeRq($sql)
{/* se connecter a la base ODBC*/
require_once("connect.php"); //inclut le fichier une seule fois
$this->db = DSN;
$this->nomUser = Nom;
$this->password = MPasse;
$connexion = odbc_connect($this->db, $this->nomUser, $this->password);
if(!$connexion)
{echo "Désolé, connexion au serveur impossible\n";
exit;
}
/* executer la requete sur la connection et placer le resultat dans le tableau rst*/
$this->rst = odbc_do($connexion,$sql);
}
/* cree une liste déroulante */
function createList($tableName, $numCol)
{ $i=1;
$sql = "SELECT " . $numCol . " FROM " . $tableName ;
$this->executeRq($sql);
if($this->rst)
{$nbCols = odbc_num_fields($this->rst); /*nb colonne de la table */
$ch="";
echo '<SELECT NAME="Ch1">';
while (odbc_fetch_row($this->rst))
{$i++;
$champ = odbc_result($this->rst,1);
echo $champ ;
$ch = $ch . "<OPTION "
if($champ == $_POST["Ch1"])
{
$ch = $ch . "SELECTED='SELECTED'";
}
$ch = $ch . " VALUE = " .$champ . " >". $champ . "</OPTION>";
}
echo $ch;
echo "</SELECT>";
}
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
4 janv. 2013 à 10:50
4 janv. 2013 à 10:50
Bonjour sabdoul,
Quel if ?
message d'erreur(Parse error: syntax error, unexpected 'if' (T_IF) ) au niveau de la ligne de IF ..
if(!$connexion) ?
if($this->rst) ?
if($champ == $_POST["Ch1"]) ?
Quel if ?
message d'erreur(Parse error: syntax error, unexpected 'if' (T_IF) ) au niveau de la ligne de IF ..
if(!$connexion) ?
if($this->rst) ?
if($champ == $_POST["Ch1"]) ?
Bonjour Helliot,
ce dernier
if($champ == $_POST["Ch1"])
ce dernier
if($champ == $_POST["Ch1"])
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
4 janv. 2013 à 11:08
4 janv. 2013 à 11:08
Remplacer les doubles quottes par des simple quottes: $_POST["Ch1"]
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
4 janv. 2013 à 11:46
4 janv. 2013 à 11:46
Merci le père .. à qui rien n'échappe.
En effet $ch = $ch . "<OPTION " : manque le point-virgule !!
En effet $ch = $ch . "<OPTION " : manque le point-virgule !!
Bonjour,
j'ai modifié le code pour le simplifie mais toujours le même problème avec le if dans la balise option.
Je précise sans la balise la condition if la balise le code fonctionne normalement mais moi j'aimerais utilisé l'attribut SELECTED pour pouvoir resté sur le champ sélectionne après la sélection.
/* cree une liste déroulante */
function createList($tableName, $numCol)
{ $i=1;
$sql = "SELECT " . $numCol . " FROM " . $tableName ;
$this->executeRq($sql);
if($this->rst)
{$nbCols = odbc_num_fields($this->rst); /*nb colonne de la table */
$ch="";
echo '<SELECT NAME="Ch1">';
while (odbc_fetch_row($this->rst))
{$i++;
$champ = odbc_result($this->rst,1);
echo "<OPTION "if($champ==$_POST["Ch1"]) { "selected= 'selected'";}" VALUE = '" . $champ . "'>". $champ . "</OPTION>";
}
echo "</SELECT>";
}
}
j'ai modifié le code pour le simplifie mais toujours le même problème avec le if dans la balise option.
Je précise sans la balise la condition if la balise le code fonctionne normalement mais moi j'aimerais utilisé l'attribut SELECTED pour pouvoir resté sur le champ sélectionne après la sélection.
/* cree une liste déroulante */
function createList($tableName, $numCol)
{ $i=1;
$sql = "SELECT " . $numCol . " FROM " . $tableName ;
$this->executeRq($sql);
if($this->rst)
{$nbCols = odbc_num_fields($this->rst); /*nb colonne de la table */
$ch="";
echo '<SELECT NAME="Ch1">';
while (odbc_fetch_row($this->rst))
{$i++;
$champ = odbc_result($this->rst,1);
echo "<OPTION "if($champ==$_POST["Ch1"]) { "selected= 'selected'";}" VALUE = '" . $champ . "'>". $champ . "</OPTION>";
}
echo "</SELECT>";
}
}