Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 33

percorrer listbox para gravar em bd

12-10-2009 14:43

Boa tarde pessoal! Estou com uma dúvida que está travando o meu trabalho, e sei que voces irão resolver rapidinho. Sou iniciante em php e sei quase nada de javascript. Meu problema é o seguinte: tenho um formulário para cadastro de um instrutor de curso em que se preenche o nome e o e-mail dele e depois quais os cursos que ele está habilitado a ministrar. Achei uma boa maneira de fazer isso colocando dois listbox, um com os cursos cadastrados e outro para que o usuário selecione os que o instrutor ministra. Até aí tudo bem, achei um javascript que faz esse preenchimento direitinho, conforme o código abaixo:

<html> <head> <title>CADASTRO DE INSTRUTOR</title> <link rel = "stylesheet" type = "text/css" href = "css-centro.css"/> <script language="javascript" type="text/javascript"> function move(ListOrigem,ListDestino) { var i; for (i = 0; i < ListOrigem.options.length ; i++) { if (ListOrigem.options[i].selected == true) { var Op = document.createElement("OPTION"); Op.text = ListOrigem.options[i].text; Op.value = ListOrigem.options[i].value; ListDestino.options.add(Op); ListOrigem.options.remove(i); i--; } } } </script> </head> <body> <h2>CADASTRO DE INSTRUTOR</h2><br> <form action = "cadastrar_instrutor.php" method = "post"> <table border="0" align=center width="100%"> <tr> <td width="40%"><b>Nome:</b></td> <td></td> <td><b>E-mail:</b></td> </tr> <tr> <td><input type="text" name="nome" maxlength="50" size="66"></td> <td></td> <td><input type="text" name="mail" maxlength="50" size="66"></td> </tr> <tr> <td><br><b>Cursos existentes:</b></td> <td></td> <td><br><b>Cursos habilitados:</b></td> </tr> <tr> <td><select multiple size="10" name="cursos" style="width:422"> <?require ("conecta.php"); $seleciona = "SELECT `id`,`nome` FROM curso"; $resultado = mysql_query($seleciona); while ($row = mysql_fetch_array($resultado)) { ?> <option value="<?print $row['id'].";";?>"><?print $row['nome'];?></option> <? } ?> </select></td> <td align="center" valign="middle"> <input type="button" onClick="move(this.form.cursomin,this.form.cursos)" value="<<"> <input type="button" onClick="move(this.form.cursos,this.form.cursomin)" value=">>"> <td><select multiple size="10" name="cursomin" style="width:422"></select></td> </tr> <tr> <td><input type="hidden" name="emp" value="<?php print $emp;?>"></td> <td></td> <td><br><input type = "submit" value="CADASTRAR"/></td> </tr> </table> </form> </body> </html>

mas a minha dúvida é a seguinte: como vou percorrer os itens inclusos no listbox na pagina "cadastrar_instrutor", para onde está indo o POST, em variáveis php e então conseguir inserí-los na tabela de cursos habilitados (que possui o id do instrutor e o id do curso)?? Se não tiver como, há alguma forma melhor de fazer isso??
aqui vai a função conecta, que está sem problemas...

<?php $hostname = 'localhost'; $banco = 'bd_sistop'; $user = 'root'; $senha = ''; $bd = mysql_connect($hostname, $user, $senha) or die ('Erro na conexão'); mysql_select_db($banco, $bd) or die ('Banco de Dados não encontrado'); ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17523
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

percorrer listbox para gravar em bd

12-10-2009 14:56

Você está com dificuldade em capturar os valores do select cursomin?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 33

percorrer listbox para gravar em bd

12-10-2009 18:39

exatamente...pois acho que só da por javascript, mas daí como vou mandar para o php para então gravar no banco...tem alguma forma de fazer isso??

Tive uma idéia mas não sei como implementar: fazer um javascript no submit do formulário de preenchimento que coloque os itens do listbox em uma array e então passar este array para o página cadastrar_instrutor.php, daí eu consigo manipular com um for...que que voce acha??

abraço!!
desde já agradeço pela atenção!!!
Não postar seguidamente
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17523
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

percorrer listbox para gravar em bd

12-10-2009 19:05

Sim, é uma boa idéia.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 33

percorrer listbox para gravar em bd

12-10-2009 19:15

Mas como eu disse não sei nada de javascript...tem algum exemplo de javascript capturando itens de um select ou algo parecido??ia me facilitar um monte...
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17523
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

percorrer listbox para gravar em bd

12-10-2009 19:19

Tem um script aqui no fórum para pegar uma opção simples do option, se não consegui adaptar volte a postar.

http://www.codigosnaweb.com/forum/Obten ... _1302.html
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 33

percorrer listbox para gravar em bd

12-10-2009 19:31

só uma dúvida: como vou mandar esta array pelo post do formulário??
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17523
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

percorrer listbox para gravar em bd

12-10-2009 19:34

Acho que esse script que eu postei vai te dar uma idéia

http://www.codigosnaweb.com/forum/viewt ... f=3&t=4350
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 33

percorrer listbox para gravar em bd

12-10-2009 20:37

cara eu acho que isso vai resolver sim, mas nao to conseguindo mandar ela pra outra pagina...
<script language="JavaScript"> function pegatodos() { var pegarref = document.getElementById('pegar'); var selectedArray = new Array(); var selObj = document.getElementById('todos'); var i; var count = 0; for (i=0; i<selObj.options.length; i++) { //if (selObj.options[i].selected) { selectedArray[count] = selObj.options[i].value; count++; //} } pegarref.value = selectedArray; } </script> <form action = "teste3.php" method = "post"> <input type="button" value="pegar todos" onclick="pegatodos();"> <select name="selSea" id="todos" size="5" multiple="multiple"> <option value="val0" selected>0</option> <option value="val1">1</option> <option value="val2">2</option> <option value="val3">3</option> </select> <input type="text" name="opcoes" id="pegar"> <input type="text" name="teste" value="isto aqui vai"> <input type = "submit" value="ENVIAR"/> </form>

o outro text ele pega no print da outra pagina mas o text com as opces que é bom nada...heheheh
no teste3.php ta assim:
<? print $teste; print $opcaoes; ?>

0
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 33

percorrer listbox para gravar em bd

12-10-2009 20:42

erro de digitação...ta funcionando sim...agora preciso de uma js que encontre a vírgula e coloque numa variável sozinho...

cara nem tenho como te agradecer...tava muito tempo tentando fazer isso...abs
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17523
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

percorrer listbox para gravar em bd

12-10-2009 20:44

Blz, você pode usar o explode, e separar os valores por vírgula, ai trabalha como precisar.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 33

percorrer listbox para gravar em bd

13-10-2009 22:19

Salve WEB!!cara ficou funcionando joia!!!coloquei o tamanho da string primeiro e fiz um for que me da todos os itens e consigo gravar no banco sem problemas!!!mas tenho um problema no java script na parte que da o tamanho:
<script language="JavaScript"> function pegatodos() { var tamanho = document.form.instrsel.length;//aqui so consigo colocando o nome do objeto('instrsel') var pegarref = document.getElementById('pegar'); var selectedArray = new Array(); var selObj = document.getElementById('todos'); var i; var count = 0; for (i=0; i<selObj.options.length; i++) { selectedArray[count] = selObj.options[i].value; count++; } pegarref.value = tamanho+","+selectedArray; } </script>



como quero usar esse js em outro form e vou precisar usar mais de um par de listbo, como faço para me dar o tamanho de qualquer objeto que chamar a função? tipo, ao invés de "instrsel"(instrutores selecionados) eu queria que fosse pra qualquer listbox que chamasse ele dava o tamanho senão vo ter que repetir o js com outro nome e repetir o nome...tem como me dar mais essa força??

Abrço!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17523
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

percorrer listbox para gravar em bd

13-10-2009 22:22

var tamanho é para que?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 33

percorrer listbox para gravar em bd

13-10-2009 22:35

para limitar o for...
$y=$row['id']; $novo_valor = explode(",", $cursohab); for($i=1;$i<=$novo_valor[0];$i++) { $x=$novo_valor[$i]; require("..\conecta.php"); $insere1 = "INSERT INTO `bd_sistop`.`habilitado` (`id_curso`,`id_instrutor`) VALUES ('$x','$y')"; $resultado1 = mysql_query($insere1); if ($resultado1) { ?> <html> <head> <script> alert("Instrutor habilitado com sucesso!")</script> </head> </html> <? } }

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17523
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

percorrer listbox para gravar em bd

13-10-2009 22:43

Não entendi o seguinte, você quer pegar quantas opções tem no select que você clicou? Explica melhor ai porque não entendi

t manhã
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 33

percorrer listbox para gravar em bd

13-10-2009 22:58

seguinte: no primeiro form eu pego a quantidade de itens inseridos no listbox e seus valores através de um imput daquele codigo que tu me mandou(3,val1,val2,val3), daí no segundo form(onde faço o insert no sql) eu faço um explode e faço um for limitado no numero de itens
for($i=1;$i<=$novo_valor[0];$i++)

, inserindo os valores passados quantidade de itens. entende??senão como eu iria inserir mais de um registro se não soubesse quantos registros tem?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17523
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

percorrer listbox para gravar em bd

14-10-2009 08:45

Eu acho que te faltou um count(), dê uma olhada nesse exemplo

<?php $input = "a,b,c"; $separa = explode(",", $input); for($i = 0; $i < count($separa); $i++) { echo $separa[$i]."<br>"; } ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 33

percorrer listbox para gravar em bd

14-10-2009 19:43

Grande WEB!!!cara era exatamente isso!!não sabia que tinha o count e por isso adaptei...ja arrumei e ta funcionando joia...agora ja aproveitando o embalo quero fazer o formulário do cadastro de curso em que eu seleciono o combobox do curso e ele preenche outro combo ou list com os registros que coloquei no banco...tipo aqueles de selciona o estado e aparece as cidades no outro lado...tem algum codigo aí??

abraço!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17523
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

percorrer listbox para gravar em bd

14-10-2009 20:24

Dá uma olhada nesse link

http://www.codigosnaweb.com/forum/Passa ... _4328.html

Note que passa o valor para outro documento, nele você pode ter sua consulta retornando outro select, ou o que for necessário.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 33

percorrer listbox para gravar em bd

14-10-2009 21:29

tinha mandado pro topico errado...mas olha so:esse manda direto pra outra pagina, é bom mas tem algum que no onchange ele passe esse escolha pra um javascript que entao execute o select do outro combobox??tipo aquele que selecina o estado e preenche as respectivas cidades...nao achei nada como eu queria, so com ajax e coisas assim...se tiver valeu!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17523
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

percorrer listbox para gravar em bd

14-10-2009 22:13

Como disse no outro também :-) não tem uma base aqui.

Você pode tentar carregar o próprio select que será montado com base na sua consulta.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 33

percorrer listbox para gravar em bd

15-10-2009 01:49

tem algum script que tenha um combobox e e ao selecionar mostra ou move o item para algum outro elemento ou na tela??qualquer coisa do tipo poderia me ajudar a resolver esse troço...
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17523
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

percorrer listbox para gravar em bd

15-10-2009 12:55

O próprio script que indiquei com jQuery faz isso, trocando o load por html, ai você armazena o valor em uma div ou elemento que tenha a id

<select name="select1" onchange="$('#conteudo').html(this.value)">

0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado