Ir para conteúdo
Fórum Script Brasil
  • 0

Como criar combo PHP automaticamente, populando no JS


Fabio Neves

Pergunta

Olá pessoal,

Gostaria de criar um combo dinamicamente, ou seja, na tela de itens é carregado este combo abaixo, mas tenho um botão que ao ser clicado insere novos combos, quantos o usuário queira, automaticamente.

O meu problema é criar este combo abaixo dentro de um javascript, usando código PHP para carregar os dados do banco com PHP.

<select name="citem1" id="select2">

<?php

do {

?>

<option value="<?php echo $row_rsitens['id']?>"><?php echo $row_rsitens['category'].', '.$row_rsitens['title']?></option>

<?php

} while ($row_rsitens = mysql_fetch_assoc($rsitens));

$rows = mysql_num_rows($rsitens);

if($rows > 0) {

mysql_data_seek($rsitens, 0);

row_rsitens = mysql_fetch_assoc($rsitens);

}

?>

</select>

Meu script está assim:

&lt;script>

function adiciona(){

var string;

campos++

string = "<select name='citem1"+campos+"' id='select"+campos+"'>"+"<?php do{ ?>"+"<option value=''>"+"<?php echo 1 ?>"+"</option>"+"<?php }while ($row_rsitens = mysql_fetch_assoc+($rsitens)); $rows = mysql_num_rows($rsitens); if($rows > 0) {mysql_data_seek($rsitens, 0);$row_rsitens = mysql_fetch_assoc($rsitens);}?>"+"</select>";

tbl = document.getElementById("tabela");

var novaLinha = tbl.insertRow(-1);

var novaCelula;

novaCelula = novaLinha.insertCell(0);

novaCelula.innerHTML = string;

novaCelula = novaLinha.insertCell(1);

novaCelula.innerHTML = "<input name='qtd"+campos+"' type='text' id='qtd"+campos+"' size='10' maxlength='10' value='"+campos+"'>"+"<?php echo 2 ?>";

novaCelula = novaLinha.insertCell(2);

novaCelula.innerHTML = "<input name='preço"+campos+"' type='text' id='preço"+campos+"' size='10' maxlength='10' value='"+campos+"'>";

}

</script>

Meu problema está na concatenação em vermelho...concateno tada a criação e população do combo na variável STRING e depois a executo no innerHTML. A página não carrega quando executo isso, se eu uso campos tipo text carrega tudo certinho, mas esse combo não consigo.

Alguém pode me ajudar?

Obrigado

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Olá!

Corrijam-me se eu estiver errado mas a concatenação em php não é feita somente com o caracter ponto?

$string = "Wand"."erson";

Link para o comentário
Compartilhar em outros sites

  • 0

Olá, a concatenação é dentro do javascript, jogo o código php e html dentro de uma string para depois executar no innerHTML.

Fiz uma concatenação na criação de um text e deu certo.

Ex: novaCelula.innerHTML = "<input name='qtd"+campos+"' type='text' id='qtd"+campos+"' size='10' maxlength='10' value='"+campos+"'>"+"<?php echo 2 ?>";

Mas com o combo ficou mais complicado porque tem que popular com dados do banco.

Como ficaria essa concatenação?

É possivel popular um combo dentro do javascript?

Olá!

Corrijam-me se eu estiver errado mas a concatenação em php não é feita somente com o caracter ponto?

$string = "Wand"."erson";

Link para o comentário
Compartilhar em outros sites

  • 0

Ah! Que tosco que eu sou! ^_^

Eu joguei esse teu código no Aptana Studio. Ele acusou o erro na linha 11:

row_rsitens = mysql_fetch_assoc($rsitens);
O correto é:
$row_rsitens = mysql_fetch_assoc($rsitens);

Conserte a linha 18 onde diz &lt;script> coloque <script>, acho que vai ajudar! =D

Olha vi teu código novamente, acho que tu deves dar uma verificada e melhorar o código; isso ajuda:

http://www.criarweb.com/artigos/178.php

Link para o comentário
Compartilhar em outros sites

  • 0

O problema não é esse, devo ter errado quando postei aki, mas na minha aplicação está correto, igual como você disse.

Alterei a criação do combo como você indicou, mas meu problema ainda é a concatenação na variável string.

Alguém pode me ajudar???

Ah! Que tosco que eu sou! ^_^

Eu joguei esse teu código no Aptana Studio. Ele acusou o erro na linha 11:

row_rsitens = mysql_fetch_assoc($rsitens);
O correto é:
$row_rsitens = mysql_fetch_assoc($rsitens);

Conserte a linha 18 onde diz &lt;script> coloque &lt;script>, acho que vai ajudar! =D

Olha vi teu código novamente, acho que tu deves dar uma verificada e melhorar o código; isso ajuda:

http://www.criarweb.com/artigos/178.php

Link para o comentário
Compartilhar em outros sites

  • 0

Achei outro erro =D Divagarin a gente vai indo! =D

while ($row_rsitens = mysql_fetch_assoc+($rsitens));

Aquele mais não pode! =D

Editado por Wanderson Camargo
Link para o comentário
Compartilhar em outros sites

  • 0

Opa!

Que bom que ajudei! =D

Fabio, eu uso o Aptana Studio com plug-in do PHP. Tu podes baixar ele em http://www.aptana.com/

Porém o problema do + ele não acusou, eu achei no braço ^^

Abraços! Cuide-se! =D

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...