par
vincilian » 19 mars 2007, 00:58
Bonsoir,
Je ne comprends pas ce que me fait PHP avec ma sélection, lorsque je sélectionne dans une liste l'item 'n' la requête qui s'éxécute me dit que j'ai sélectionné l'item 'n+1'...
Ceci est probablement dû au fait que ma liste est gérée via Javascript, en fait j'ai besoin d'un cador en PHP/Javascript...
ci joint le code de mon truc sudukesque:
fichier liste.js
Code : Tout sélectionner
var liste = new Array();
liste[0] = new Array(
);
liste[1] = new Array(
'aaa',
'bbb',
'ccc',
'ddd',
'eee'
);
liste[2] = new Array(
'111',
'222',
'333',
'444',
'555',
'666'
);
liste[3] = new Array(
'AAA',
'BBB',
'CCC',
'DDD'
);
Puis le code source de mon fichier php :
Code : Tout sélectionner
<html>
<title>aaa</title>
<script language="javascript" src="liste.js"></script>
<head>
<script>
optionTest = true;
function init(){
lgth = document.forms['select_choix'].alphabet.options.length - 1;
document.forms['select_choix'].alphabet.options[lgth] = null;
if (document.forms['select_choix'].alphabet.options[lgth]) optionTest = false;
}
function populate(){
if (!optionTest) return;
var box = document.forms['select_choix'].alphabet;
var number = box.options[box.selectedIndex].value;
if (!number) return;
var list = liste[number];
var box2 = document.forms['select_choix'].faire_selection;
box2.options.length = 0;
for(i=0;i<list.length;i+=1){
box2.options[i] = new Option(list[i],list[i+1]);
}
}
</script>
</head>
<body onLoad="init();">
<table width="100%">
<tr>
<td>
Type de recherche :<br><br>
<a href="page_choix.php?apui=titre" target="_self">Selection</a><br>
<?php
if(isset($_GET['apui']) && $_GET['apui']=="titre"){
echo '
<form name="select_choix" action="page_choix.php" method="post">
<table width="96%" align="center">
<tr>
<td width="20%">Choix</td>
<td width="20%">
<select name="alphabet" onchange="populate();">
<option value="0">-</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
<option value="4">Pour_test_init</option>
</select>
</td>
<td width="30%">
<select name="faire_selection">
<option value="" size="30">vide</option>
</select>
</td>
<td width="20%"><input type ="submit" value="search" name="selection"></td>
<td width> </td>
</tr>
</table>
</form>
';
}
?>
</td>
</tr>
</table>
<?php
echo "****************************************<br>";
echo "Contenu de $_POST :".var_dump($_POST)." <br>";
echo "****************************************<br>";
?>
</body>
</html>
Bonsoir,
Je ne comprends pas ce que me fait PHP avec ma sélection, lorsque je sélectionne dans une liste l'item 'n' la requête qui s'éxécute me dit que j'ai sélectionné l'item 'n+1'...
Ceci est probablement dû au fait que ma liste est gérée via Javascript, en fait j'ai besoin d'un cador en PHP/Javascript...
ci joint le code de mon truc sudukesque:
[u]fichier liste.js[/u]
[code]var liste = new Array();
liste[0] = new Array(
);
liste[1] = new Array(
'aaa',
'bbb',
'ccc',
'ddd',
'eee'
);
liste[2] = new Array(
'111',
'222',
'333',
'444',
'555',
'666'
);
liste[3] = new Array(
'AAA',
'BBB',
'CCC',
'DDD'
);
[/code]
[u]Puis le code source de mon fichier php :[/u]
[code]
<html>
<title>aaa</title>
<script language="javascript" src="liste.js"></script>
<head>
<script>
optionTest = true;
function init(){
lgth = document.forms['select_choix'].alphabet.options.length - 1;
document.forms['select_choix'].alphabet.options[lgth] = null;
if (document.forms['select_choix'].alphabet.options[lgth]) optionTest = false;
}
function populate(){
if (!optionTest) return;
var box = document.forms['select_choix'].alphabet;
var number = box.options[box.selectedIndex].value;
if (!number) return;
var list = liste[number];
var box2 = document.forms['select_choix'].faire_selection;
box2.options.length = 0;
for(i=0;i<list.length;i+=1){
box2.options[i] = new Option(list[i],list[i+1]);
}
}
</script>
</head>
<body onLoad="init();">
<table width="100%">
<tr>
<td>
Type de recherche :<br><br>
<a href="page_choix.php?apui=titre" target="_self">Selection</a><br>
<?php
if(isset($_GET['apui']) && $_GET['apui']=="titre"){
echo '
<form name="select_choix" action="page_choix.php" method="post">
<table width="96%" align="center">
<tr>
<td width="20%">Choix</td>
<td width="20%">
<select name="alphabet" onchange="populate();">
<option value="0">-</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
<option value="4">Pour_test_init</option>
</select>
</td>
<td width="30%">
<select name="faire_selection">
<option value="" size="30">vide</option>
</select>
</td>
<td width="20%"><input type ="submit" value="search" name="selection"></td>
<td width> </td>
</tr>
</table>
</form>
';
}
?>
</td>
</tr>
</table>
<?php
echo "****************************************<br>";
echo "Contenu de $_POST :".var_dump($_POST)." <br>";
echo "****************************************<br>";
?>
</body>
</html>
[/code]