FórumGdH

Página Inicial do Guia do Hardware

Registrar FAQ Calendário Pesquisar Mensagens de Hoje Marcar Fóruns Como Lidos

Voltar   FórumGdH > Profissional > Programação, scripts, web e banco de dados
Bem-vindo ao FórumGdH
Não se esqueça de se registrar, é grátis . Nós temos 754.108 usuários, convidamos você fazer parte de nossa comunidade também! Se ainda não encontrou o que procura use nossa pesquisa. Esperamos que aprecie nosso trabalho.

Resposta
 
Opções do Tópico
Antigo 02-05-2005, 16:48   #1 (permalink)
rwar
GeeK
 
Avatar de rwar
 
Registrado em: Aug 2002
Localização: Porto Alegre (RS)
Mensagens: 2.448
Reputação: 23 rwar está indo no caminho certo
Padrão passar valores de função JS pro PHP

Estou precisando passar valores de uma função em JS para PHP.

Explico: tenho um formulário que tem um botão que abre uma nova janela. Nesta nova janela, o usuário pode escolher algumas opções (o sistema refere-se a relacionar uma nova notícia com as já existentes - daí o usuário poder escolher as notícias que lhe convier). As opções escolhidas pelo usuário serão inseridas, na janela pai, em um componente <select>.

Pois bem, até aí tudo bem. O problema é que não consigo pegar os valores dessa função que está inserindo os valores no <select> para passar para o script que realmente irá gravar os dados.

Os scripts estão aqui:

Este script é o que recebe as opções do usuário, uma a uma, e insere no <select> do form (script noticia_novoform.php):
Código:
<script> function InserirItem( texto, valor ) { var doc = document.form.ids_noticia_rel; var posicao = doc.length; posicao = posicao > 0 ? posicao : 0; doc.options[posicao] = new Option( texto, valor ); doc.options[posicao].selected = true; } </script>
Este é o form, ainda na janela pai (noticia_novoform.php):
Código:
<form name="form" action="noticia_novo.php" method="POST" onSubmit="return Valida(form);"> ... <input type="button" name="butNoticiaCategoria" value="Adicionar" class="botao" style="width:60px" onClick="window.open('noticia_inc_noticia2.php','','toolbar=yes,location=no,status=yes,menubar=no,scrollbar=yes,resizable=no,top=100,left=200,width=410,height=215');"> <select name="ids_noticia_rel" size="10" style="width:320px" multiple> </select> ... </form>
Esta é a janela que o usuário pode escolher as opções que desejar. Quando ele clicar "OK para relacionar notícias", as opções irão para a janela pai:
Código:
<script> // Função para inclusão e exclusão de notícias // relacionadas na própria página. function Submeter() { // Referência ao <select> da janela filha. var doc = document.form1.ids_noticia; // Referência ao <select> da janela pai. var doc_alvo = window.opener.document.form.ids_noticia_rel; // Variáveis para controle de laço, valor do item, texto // do item e valor do item selecionado, respectivamente. var i, valor, texto, vetor; for( i = 0, j = 0; i < doc.length; i++ ) { if( doc.options[i].selected ) { // Desmembra o vetor em valor e texto, respectivamente. vetor = doc[i].value.split("|"); valor = vetor[0]; texto = vetor[1]; // Envia os valores do texto e do valor para a função na // janela pai, a qual fará o tratamento dos parâmetros. window.opener.InserirItem(vetor[1], vetor[0]); } } } </script> <? include "../../inc/common.php"; verifica_login("admin"); $sql = "SELECT id_noticia, titulo_noticia FROM csi_noticia"; $rs = new query( $conn, $sql ); ?> <table> <form name="form1"> <tr> <td> <input type="button" value="Ok para Relacionar Notícias" class="botao" onClick="Submeter();"> <input type="button" value="Fechar" name="butFechar" class="botao" onClick="self.close()"> </td> </tr> <tr> <td><!-- Notícias relacionadas --> <select name="ids_noticia" multiple size="10" style="width:390px"> <? $i = 1; while( $rs->getrow() ) { ?> <option value="<?=$rs->field("id_noticia")."|".$rs->field("titulo_noticia");?>"><?=$rs->field("titulo_noticia");?></option> <? $i++; } ?> </select> </td> </tr> </form> </table>
__________________
No caminho dos scripts. Por enquanto, powershell...
rwar está offline   Responder com Quote
Antigo 02-05-2005, 17:48   #2 (permalink)
jqueiroz
Highlander
 
Avatar de jqueiroz
 
Registrado em: May 2002
Localização: Tijuca/RJ
Idade: 9
Mensagens: 87.724
Reputação: 778 jqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputação
Padrão

Citação:
Este script é o que recebe as opções do usuário, uma a uma, e insere no <select> do form (script noticia_novoform.php):
você tem certeza de que este script funciona???

Já o testou isoladamente???
__________________
Visite Quepolis (link de indicação) | "chmod 777 nunca ajudou ninguém" (c) 2002-2010 JQueiroz/FGdH
CCNP: √ ² CCSI: □ | Conheça o Novo Bebuns
jqueiroz está offline   Responder com Quote
Antigo 03-05-2005, 7:54   #3 (permalink)
rwar
GeeK
 
Avatar de rwar
 
Registrado em: Aug 2002
Localização: Porto Alegre (RS)
Mensagens: 2.448
Reputação: 23 rwar está indo no caminho certo
Padrão

Não entendi o "isoladamente", mas funciona no script que estou desenvolvendo. Qual seria a dúvida?
__________________
No caminho dos scripts. Por enquanto, powershell...
rwar está offline   Responder com Quote
Antigo 03-05-2005, 12:02   #4 (permalink)
jqueiroz
Highlander
 
Avatar de jqueiroz
 
Registrado em: May 2002
Localização: Tijuca/RJ
Idade: 9
Mensagens: 87.724
Reputação: 778 jqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputaçãojqueiroz tem uma fabulosa reputação
Padrão

executar ele diretamente, com parâmetros de teste. pq nesse esquema todo, tem N locais que podem não estar funcionando.
__________________
Visite Quepolis (link de indicação) | "chmod 777 nunca ajudou ninguém" (c) 2002-2010 JQueiroz/FGdH
CCNP: √ ² CCSI: □ | Conheça o Novo Bebuns
jqueiroz está offline   Responder com Quote
Antigo 03-05-2005, 13:02   #5 (permalink)
rwar
GeeK
 
Avatar de rwar
 
Registrado em: Aug 2002
Localização: Porto Alegre (RS)
Mensagens: 2.448
Reputação: 23 rwar está indo no caminho certo
Padrão

Citação:
Postado Originalmente por jqueiroz
executar ele diretamente, com parâmetros de teste. pq nesse esquema todo, tem N locais que podem não estar funcionando.
jqueiroz, eu coloquei o código apenas para o pessoal acompanhar o que estava fazendo no todo, mas tenho certeza que este código funciona. A minha real dúvida é sobre pegar as opções que o cliente escolheu, somente isso... :wink:

Não posso colocar colchetes oa receber os valores pois o javascript não aceita este tipo de "inserção ao léu", se é que posso dizer assim.

Maaaaaasss nem tudo está perdido... 8)

Coloquei este código na função de validação do script (javascript) e está obtendo os valores separados por ; (ponto e vírgula).
Código:
var i; var aux1 = ''; for( i = 0; i < _frm.ids_noticia_rel.length; i++ ) { aux1 += _frm.ids_noticia_rel.options[i].text + ";"; } _frm.aux.value = aux1;
Agora consigo passar as opções para o script de inserção. Precisarei apenas tratá-los para remover o ponto e vírgula. Beleza? Daqui a pouco posto outra pergunta, assim que me perder novamente... :lol:
__________________
No caminho dos scripts. Por enquanto, powershell...
rwar está offline   Responder com Quote
Resposta


Opções do Tópico

Regras de Mensagens
Você não pode criar tópicos
Você não pode postar respostas
Você não pode anexar arquivos
Você não pode editar suas mensagens

Código vB está Ligado
Smiles estão Ligado
Código [IMG] está Ligado
Código HTML está Desligado
Ir para...


Horários baseados na GMT -3. Agora são 10:54.