Jump to content

Recommended Posts

Posted

Boas Pessoal, Estou aqui com um problema em escrever valores numa combobox apartir de um array em javascript. O array contem uma lista de cidades que quero que meta na combobox. O meu código está assim:

<select name="zone_id" id="zone_id" class="large-field">

 <option value="" >Teste </option>

 <script>

$("#country_id").change(function() {

var escolha = this.value;
var i, j,array_produtos, string_array, string_cidades, array_cidades, cidades_escolhidas;
string_cidades = "<?php echo $string_cidades; ?>";
string_array = "<?php echo $string_array; ?>";
array_produtos = string_array.split("|");
array_cidades = string_cidades.split("|");
alert(array_produtos.length);
for (i = 0, j = 0; i<3948; i++) {


if(array_produtos[i] == escolha)
 {

//		 cidades_escolhidas[j] = array_cidades[i];
//		 j++;
//		 alert(array_cidades[i]);
//			 $("option").html(array_cidades[i]);

	 alert(array_cidades[i]);
 }
}

});

</script>


<!-- <?php for($i=0; $i<count($pais['id']); $i++) {
if($pais['id'][$i]==171) {
?>
<option value="<?php echo $pais['id'][$i]; ?>"><?php echo $pais['name'][$i]; ?></option>
<?php } else {} }?>-->

</select>

eu tinha escrito em php, porque o meu código era em php, mas como passei para javascript queria escrever em javascript, mas nao consigo. Alguém me dá uma mãozinha? Obrigado a todos 🙂

Posted

mas que valente confusão !!!

vê este exemplo e tira ideias:

// criar a primeira combobox
echo "<select id='combobox1' onchange='alterar();'>";
$rs = mysql_query("..."); // ler valores do primeiro combobox
foreach ($rs as $combo1)
{
   echo "<option value='{$combo1['id']}'>{$combo1['texto']}</option>";
}
echo "</select>";

// criar a segunda combobox
echo "<select id='combobox2'></select>";
// script de javascript
echo "<script text='text/javascript'>";

// lista de valores que reside em javascript do lado do cliente
echo "var combo = new Array();";
// para cada elemento do primeiro combobox
foreach ($rs as $combo1)
{
 // adicionar uma lista
 echo "combo[".$record['id']."] = new Array();"
 // ler valores do segundo combobox dependete do elemento iterado
 $rs2 = mysql_query("...");
 // para cada elemento lida da base de dados
 foreach($rs2 as $record2)
 {
   // adiciona à lista criada um objecto com os dados a serem iseridos no segundo combobox
   echo "combo[".$record['id']."][".$record2['id']."] = {id: '".$record2['id']."', value: '".$record2['texto']."'};";
 }
}

// funcao que altera os dados a serem apresentados no segundo combobox
echo "
     function alterar(){
       // elemento DOM do segundo combobox
       var target = $('#combo2');
       // ler o id do elemento selecionado do primeiro combobox
       var i = $('#combo1').val();
       // limpar o segundo combobox de todos os seus elementos antes de inserir
       target.html("");
       // inserir os elementos do array no segundo combobox
       for (j = 0; j < combo[i].length; j++) {
         target.append('<option value=\\''+combo[i].id+'\\'>'+combo[i].value+'</option>');
       }
     }
   </script>";

PS : isto não foi testado nem de perto nem de longe ... foi de cabeça para tires ideias

IRC : sim, é algo que ainda existe >> #p@p

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.