HELP!!!! Récupérer une sélection d'une liste déroulante
Posté : 30 janv. 2006, 23:48
Bonjour,
Je suis débutante en PHP et j'ai 2 questions parmi beaucoup d'autres:
1) Comment récupérer la ligne sélectionnée dans une liste déroulante avant de faire le submit de la page? j'ai une liste qui s'appelle id[8] et en javascript je récupère de la manière suivante:
form.elements['id[8]'].options[form.elements['id[8]'].selectedIndex].text
mais en Php je n'arrive pas. Est-ce quelqu'un peut m'aider?
2) deuxième problème, dans un script php, j'appelle une fonction Php qui alimente mon fameux champ liste id[8] depuis la base de données et sur la propriété OnChange j'aimerais appeler une deuxième fonction Php pour alimenter un deuxième champ liste nommé id[19]. Impossible d'appeler la deuxième fonction, le message "Objet attendu" s'affiche, je ne comprend pas pourquoi, car si j'appelle une fonction Javascript ça fonctionne.
Pour tester j'ai mis dans ma deuxième fonction un simple "echo". Voici le code:
La ligne qui appelle la première fonction dans le script:
<td class="main"><?php echo AfficheListePuissance('id[8]', $products_options_array, $selected_attribute) . $products_options_name['products_options_comment']; ?></td>
La 1ère fonction:
function AfficheListePuissance($name, $values, $default = '', $parameters = '', $required = false) {
// $field = '<select name="id[8]" OnCahnge="tep_draw_pull_down_menu_cylindre()"><option value="1">-1.00<option value="2">-1.75<option value="3">-2.25</select>';
$field = '<select name="' . tep_output_string($name) . '"';
if (tep_not_null($parameters)) $field .= ' ' . $parameters;
// c'est la fonction javascript qui fonctionne
// $field .= ' OnChange="AfficheCylindre(cart_quantity)"';
// au dessous c'est la fonction php qui ne fonctionne pas
$field .= ' OnChange="AfficheMessage()"';
$field .= '>';
if (empty($default) && isset($GLOBALS[$name])) $default = stripslashes($GLOBALS[$name]);
for ($i=0, $n=sizeof($values); $i<$n; $i++) {
$field .= '<option value="' . tep_output_string($values[$i]['id']) . '"';
if ($default == $values[$i]['id']) {
$field .= ' SELECTED';
}
$field .= '>' . tep_output_string($values[$i]['text'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>')) . '</option>';
}
$field .= '</select>';
if ($required == true) $field .= TEXT_FIELD_REQUIRED;
return $field;
}
Ma 2ème fonction dans la quelle j'aimerais ensuite récupérer la ligne sélectionnée pour pouvoir afficher ma 2ème liste, mais comme l'appel ne fonctionnait pas et que je ne sais pas comment faire pour récupérer la ligne sélectionnée en PHP, j'ai essayé avec un simple echo mais sans résultat:
function AfficheMessage() {
echo "test";
}
Merci d'avance pour vos réponses qui me seront utiles car je suis bloquée sur ce point pour terminer mon site.
Infoctet
Je suis débutante en PHP et j'ai 2 questions parmi beaucoup d'autres:
1) Comment récupérer la ligne sélectionnée dans une liste déroulante avant de faire le submit de la page? j'ai une liste qui s'appelle id[8] et en javascript je récupère de la manière suivante:
form.elements['id[8]'].options[form.elements['id[8]'].selectedIndex].text
mais en Php je n'arrive pas. Est-ce quelqu'un peut m'aider?
2) deuxième problème, dans un script php, j'appelle une fonction Php qui alimente mon fameux champ liste id[8] depuis la base de données et sur la propriété OnChange j'aimerais appeler une deuxième fonction Php pour alimenter un deuxième champ liste nommé id[19]. Impossible d'appeler la deuxième fonction, le message "Objet attendu" s'affiche, je ne comprend pas pourquoi, car si j'appelle une fonction Javascript ça fonctionne.
La ligne qui appelle la première fonction dans le script:
<td class="main"><?php echo AfficheListePuissance('id[8]', $products_options_array, $selected_attribute) . $products_options_name['products_options_comment']; ?></td>
La 1ère fonction:
function AfficheListePuissance($name, $values, $default = '', $parameters = '', $required = false) {
// $field = '<select name="id[8]" OnCahnge="tep_draw_pull_down_menu_cylindre()"><option value="1">-1.00<option value="2">-1.75<option value="3">-2.25</select>';
$field = '<select name="' . tep_output_string($name) . '"';
if (tep_not_null($parameters)) $field .= ' ' . $parameters;
// c'est la fonction javascript qui fonctionne
// $field .= ' OnChange="AfficheCylindre(cart_quantity)"';
// au dessous c'est la fonction php qui ne fonctionne pas
$field .= ' OnChange="AfficheMessage()"';
$field .= '>';
if (empty($default) && isset($GLOBALS[$name])) $default = stripslashes($GLOBALS[$name]);
for ($i=0, $n=sizeof($values); $i<$n; $i++) {
$field .= '<option value="' . tep_output_string($values[$i]['id']) . '"';
if ($default == $values[$i]['id']) {
$field .= ' SELECTED';
}
$field .= '>' . tep_output_string($values[$i]['text'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>')) . '</option>';
}
$field .= '</select>';
if ($required == true) $field .= TEXT_FIELD_REQUIRED;
return $field;
}
Ma 2ème fonction dans la quelle j'aimerais ensuite récupérer la ligne sélectionnée pour pouvoir afficher ma 2ème liste, mais comme l'appel ne fonctionnait pas et que je ne sais pas comment faire pour récupérer la ligne sélectionnée en PHP, j'ai essayé avec un simple echo mais sans résultat:
function AfficheMessage() {
echo "test";
}
Merci d'avance pour vos réponses qui me seront utiles car je suis bloquée sur ce point pour terminer mon site.
Infoctet