geek Posted July 30, 2012 at 11:52 AM Report #470947 Posted July 30, 2012 at 11:52 AM 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 🙂
HappyHippyHippo Posted July 30, 2012 at 02:20 PM Report #470972 Posted July 30, 2012 at 02:20 PM 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 Portugol Plus
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now