ilos3
10-09-2009, 15:06
Ciao a tutti, ho un problema da risolvere abbastanza urgentemente. Ho bisogno di creare un tag select in base ai risultati di un altra select. Quello che ho fatto è questo:
<script type="text/javascript">
function checkCategoria(){
if (cat=document.getElementById('categoria').value==''){
document.getElementById('marchio').innerHTML=' ';
}
if (cat=document.getElementById('categoria').value=='tutte'){
<?php
$result=mysql_query("SELECT nome FROM marchi;");
$z=0;
$val[0]='';
while($marchio=mysql_fetch_row($result)){
$val[$z]=$marchio[0];
$z++;
}
$righe=mysql_num_rows($result);
?>
var marchioSel=new Array();
<?php
for($i=0; $i<$righe; $i++){
?>
marchioSel.push("<?=$val[$i]?>");
<?php
}
?>
var stringa='';
stringa+='<label>con marchio </label><select id="marchio"><option value="tutti">Tutti i marchi<\/option>';
for(var i=0; i<marchioSel.length; i++){
stringa+='<option value="'+marchioSel[i]+'">'+marchioSel[i]+'<\/option>';
}//for
stringa+='<\/select>';
document.getElementById('marchio').innerHTML=stringa;
}//if
if (cat=document.getElementById('categoria').value=='strumenti di diagnosi'){
var marchi=new Array();
<?php
for($i=0; $i<count($diagnosi); $i++){
?>
marchi.push("<?=$diagnosi[$i]?>");
<?php
}
?>
var stringa='';
stringa+='<label>con marchio </label><select id="marchio">';
for(var i=0; i<marchi.length; i++){
stringa+='<option value="'+marchi[i]+'">'+marchi[i]+'<\/option>';
}//for
stringa+='<\/select>';
document.getElementById('marchio').innerHTML=stringa;
}//if
if (cat=document.getElementById('categoria').value=='linee di revisione'){
var marchi=new Array();
<?php
for($i=0; $i<count($revisione); $i++){
?>
marchi.push("<?=$revisione[$i]?>");
<?php
}
?>
var stringa='';
stringa+='<label>con marchio </label><select id="marchio">';
for(var i=0; i<marchi.length; i++){
stringa+='<option value="'+marchi[i]+'">'+marchi[i]+'<\/option>';
}//for
stringa+='<\/select>';
document.getElementById('marchio').innerHTML=stringa;
}
if (cat=document.getElementById('categoria').value=='attrezzature per gommisti'){
var marchi=new Array();
<?php
for($i=0; $i<count($gommisti); $i++){
?>
marchi.push("<?=$gommisti[$i]?>");
<?php
}
?>
var stringa='';
stringa+='<label>con marchio </label><select id="marchio">';
for(var i=0; i<marchi.length; i++){
stringa+='<option value="'+marchi[i]+'">'+marchi[i]+'<\/option>';
}//for
stringa+='<\/select>';
document.getElementById('marchio').innerHTML=stringa;
}
if (cat=document.getElementById('categoria').value=='autofficine'){
var marchi=new Array();
<?php
for($i=0; $i<count($autofficine); $i++){
?>
marchi.push("<?=$autofficine[$i]?>");
<?php
}
?>
var stringa='';
stringa+='<label>con marchio </label><select id="marchio">';
for(var i=0; i<marchi.length; i++){
stringa+='<option value="'+marchi[i]+'">'+marchi[i]+'<\/option>';
}//for
stringa+='<\/select>';
document.getElementById('marchio').innerHTML=stringa;
}
}
</script>
e il form è:
<form action="pagina.php" method="post" name="ricerca">
<table cellpadding="0" cellspacing="4px" id="cerca_php" style="padding-left:20px">
<tr>
<td align="left"><input type="submit" value="Cerca prodotto" /> </td>
<td align="left"><input type="text" id="testo" name="testo" <?php if($keyword!='Cerca su assitop.it') echo 'value="'.$keyword.'"' ?> /></td>
<td></td>
</tr>
<tr>
<td align="right"><label>...in </label></td>
<td align="left">
<select name="categoria" id="categoria" onChange="checkCategoria()">
<option value="">- -Seleziona- -</option>
<option value="tutte">Tutte le categorie</option>
<option value="strumenti di diagnosi">Strumenti di diagnosi</option>
<option value="linee di revisione">Linee di revisione</option>
<option value="attrezzature per gommisti">Attrezzature per gommisti</option>
<option value="autofficine">Attrezzature per autofficine</option>
</select>
</td>
<td id="marchio" align="left" >
<select id="marchio" name="marchio">
</select>
</td>
</tr>
<tr></tr>
<tr>
<td><input type="radio" id="ricerca" name="ricerca" value="alcune" checked="checked" />Alcune parole</td>
<td align="center"><input type="radio" id="ricerca" name="ricerca" value="tutte" />Tutte le parole</td>
<td><input type="radio" id="ricerca" name="ricerca" value="esatta" />Frase esatta</td>
</tr>
</table>
</form>
Il tag select compare quando viene fatta una selezione nel primo select e quindi funziona tutto per bene.
PROBLEMA: Quando vado a riprendere il campo nella pagina successiva tramite POST non riprende niente!!! Quindi la variabile $_POST['marchio'] rimane vuota. Dove sbaglio??
Grazie :)
<script type="text/javascript">
function checkCategoria(){
if (cat=document.getElementById('categoria').value==''){
document.getElementById('marchio').innerHTML=' ';
}
if (cat=document.getElementById('categoria').value=='tutte'){
<?php
$result=mysql_query("SELECT nome FROM marchi;");
$z=0;
$val[0]='';
while($marchio=mysql_fetch_row($result)){
$val[$z]=$marchio[0];
$z++;
}
$righe=mysql_num_rows($result);
?>
var marchioSel=new Array();
<?php
for($i=0; $i<$righe; $i++){
?>
marchioSel.push("<?=$val[$i]?>");
<?php
}
?>
var stringa='';
stringa+='<label>con marchio </label><select id="marchio"><option value="tutti">Tutti i marchi<\/option>';
for(var i=0; i<marchioSel.length; i++){
stringa+='<option value="'+marchioSel[i]+'">'+marchioSel[i]+'<\/option>';
}//for
stringa+='<\/select>';
document.getElementById('marchio').innerHTML=stringa;
}//if
if (cat=document.getElementById('categoria').value=='strumenti di diagnosi'){
var marchi=new Array();
<?php
for($i=0; $i<count($diagnosi); $i++){
?>
marchi.push("<?=$diagnosi[$i]?>");
<?php
}
?>
var stringa='';
stringa+='<label>con marchio </label><select id="marchio">';
for(var i=0; i<marchi.length; i++){
stringa+='<option value="'+marchi[i]+'">'+marchi[i]+'<\/option>';
}//for
stringa+='<\/select>';
document.getElementById('marchio').innerHTML=stringa;
}//if
if (cat=document.getElementById('categoria').value=='linee di revisione'){
var marchi=new Array();
<?php
for($i=0; $i<count($revisione); $i++){
?>
marchi.push("<?=$revisione[$i]?>");
<?php
}
?>
var stringa='';
stringa+='<label>con marchio </label><select id="marchio">';
for(var i=0; i<marchi.length; i++){
stringa+='<option value="'+marchi[i]+'">'+marchi[i]+'<\/option>';
}//for
stringa+='<\/select>';
document.getElementById('marchio').innerHTML=stringa;
}
if (cat=document.getElementById('categoria').value=='attrezzature per gommisti'){
var marchi=new Array();
<?php
for($i=0; $i<count($gommisti); $i++){
?>
marchi.push("<?=$gommisti[$i]?>");
<?php
}
?>
var stringa='';
stringa+='<label>con marchio </label><select id="marchio">';
for(var i=0; i<marchi.length; i++){
stringa+='<option value="'+marchi[i]+'">'+marchi[i]+'<\/option>';
}//for
stringa+='<\/select>';
document.getElementById('marchio').innerHTML=stringa;
}
if (cat=document.getElementById('categoria').value=='autofficine'){
var marchi=new Array();
<?php
for($i=0; $i<count($autofficine); $i++){
?>
marchi.push("<?=$autofficine[$i]?>");
<?php
}
?>
var stringa='';
stringa+='<label>con marchio </label><select id="marchio">';
for(var i=0; i<marchi.length; i++){
stringa+='<option value="'+marchi[i]+'">'+marchi[i]+'<\/option>';
}//for
stringa+='<\/select>';
document.getElementById('marchio').innerHTML=stringa;
}
}
</script>
e il form è:
<form action="pagina.php" method="post" name="ricerca">
<table cellpadding="0" cellspacing="4px" id="cerca_php" style="padding-left:20px">
<tr>
<td align="left"><input type="submit" value="Cerca prodotto" /> </td>
<td align="left"><input type="text" id="testo" name="testo" <?php if($keyword!='Cerca su assitop.it') echo 'value="'.$keyword.'"' ?> /></td>
<td></td>
</tr>
<tr>
<td align="right"><label>...in </label></td>
<td align="left">
<select name="categoria" id="categoria" onChange="checkCategoria()">
<option value="">- -Seleziona- -</option>
<option value="tutte">Tutte le categorie</option>
<option value="strumenti di diagnosi">Strumenti di diagnosi</option>
<option value="linee di revisione">Linee di revisione</option>
<option value="attrezzature per gommisti">Attrezzature per gommisti</option>
<option value="autofficine">Attrezzature per autofficine</option>
</select>
</td>
<td id="marchio" align="left" >
<select id="marchio" name="marchio">
</select>
</td>
</tr>
<tr></tr>
<tr>
<td><input type="radio" id="ricerca" name="ricerca" value="alcune" checked="checked" />Alcune parole</td>
<td align="center"><input type="radio" id="ricerca" name="ricerca" value="tutte" />Tutte le parole</td>
<td><input type="radio" id="ricerca" name="ricerca" value="esatta" />Frase esatta</td>
</tr>
</table>
</form>
Il tag select compare quando viene fatta una selezione nel primo select e quindi funziona tutto per bene.
PROBLEMA: Quando vado a riprendere il campo nella pagina successiva tramite POST non riprende niente!!! Quindi la variabile $_POST['marchio'] rimane vuota. Dove sbaglio??
Grazie :)