Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rodrigofariat

[Resolvido] Carregando janela de um lista que contem nomes

Recommended Posts

Pessoal,

 

Mais um problema para conseguir abrir uma janela, mas dessa vez o código é bem diferente.

O mesmo consiste em um combobox, na qual voce clica na seta do combobox, e os elementos contidos são mostrados.

Depois de escolher um elemento uma janela é aberta para alterar dados, isso dentro da mesma pagina.

Gostaria que fosse aberto uma outra janela conservando a pagina que fez a escolha.

 

<?php
    echo  "<form name='MenuAlteraNomes' action='alterarnome.php' method='get'>";
    echo '<label for="nome">Nome:</label>';
    $query='SELECT codigo, nome FROM cadastro ORDER by nome;';
    $resultado=mysql_query($query);
         
    if (mysql_num_rows($resultado) > 0)
         {
            $_GET['codigo'];
            $_GET['nome'];
      
            echo "<form action='{$_SERVER['PHP_SELF']}' method='post'>";
            echo '<select name="nome" class="select">';
		       
            while($linha=mysql_fetch_object($resultado))
              {
                echo "<option value='{$linha->nome}'>{$linha->nome}</option>";
              }                                               
               echo "</select><br>";
               echo "<input type='submit' value='Alterar dados' onclick='abreJanelaAlteraNome('alterarnome.php')';>";
			   
         } //fecha if        

Mesmo indicando a função javascript a janela continua aparecendo na mesma pagina.

 

Alguma sujestao ?

 

Att,

 

Rodrigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso acontece por causa do submit.

use um button.

 

e depende bastante da função: 'abreJanelaAlteraNome' esteja certo de que ela faz um: window.open

 

oque tem de php na tua dúvida? se for exclusivamente JS, posso mover para o fórum adequado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usando o target uma nova janela é aberta, entretanto a w3c baniu esse elemento.

Prefiro usar a solução com JavaScript.

Na estrutura do meu site tenho um arquivo chamado abreJanela.js na qual estão todos os scripts para abrir janelas pop-ups.

 

Codigo do javascript

function abreJanelaAlteraNome(pagina){ 
	pagina = pagina + '?nome=' + document.getElementById("nome").value;
    window.open(pagina);                            
    }

Tentei usar o seguinte comando no PHP.

 

echo "<input type='button' value='Alterar dados' onclick='abreJanelaAlteraNome('alterardados.php')';>";

No Firebug, informa que o comando acima há erro de sintaxe. Mas a principio vejo que fechei todos os elementos.

 

 

Att,

 

Rodrigo Faria

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, mas aí já não vai mais ser dúvida com PHP, e sim com Javascript. Vou mover para lá.

 

Tópico Movido

PHP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Javascript

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é na parte php, faça assim:

echo '<input type="button" value="Alterar dados" onclick="abreJanelaAlteraNome(\'alterardados.php\');" />';

você tava quebrando a string do onclick ao usar 2 vezes aspas simples..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usando o comando do onclick que voce passou, deu certo.

Agora quando clico no botão de envio o firebug informa a seguinte mensagem:

 

document.getElementById("nome") is null

[break on this error] pagina = pagina + '?nome=' + document.getElementById("nome").value;\n

 

Isso acontece porque a variavel nome nao esta preenchida, tentei forçar da seguinte forma:

 


<?php

    $conexao = mysql_connect("localhost", "root", "") or die ("Erro na conexao ao banco de dados.");
    $db = mysql_select_db("banco") or die ("Erro ao selecionar a base de dados.");
    $nome = $_REQUEST["$nome"]; 
    
    #Tentativa de buscar no banco de dados um valor para a variavel nome	
    $sql2 = "SELECT nome FROM cadastro WHERE nome = '$nome';";
    $resultado2 = mysql_query($sql2);
    echo "<br><br>";
    echo "Nome: $nome";
        
    echo  "<form name='MenuAlteraNomes' action='alterarnome.php' method='get'>";
    echo '<label for="nome">Nome:</label>';
    $query='SELECT codigo, nome FROM cadastro ORDER by nome;';
    $resultado=mysql_query($query);
         
    if (mysql_num_rows($resultado) > 0)
         {
            $_GET['codigo'];
            $_GET['nome'];
      
            echo "<form action='{$_SERVER['PHP_SELF']}' method='post'>";
            echo '<select name="nome" class="select">';
                       
            while($linha=mysql_fetch_object($resultado))
              {
                echo "<option value='{$linha->nome}'>{$linha->nome}</option>";
              }                                               
               echo "</select><br>";
               echo "<input type='submit' value='Alterar dados' onclick='abreJanelaAlteraNome('alterarnome.php')';>";
                           
         } //fecha if 

Tentei também aproveitar o código que gera a lista com os nomes, tentando recuperar algum valor para

ser atribuído a variável nome, assim fazendo com que o código javascript funcionasse, abrindo uma nova janela.

 

Att,

 

Rodrigo Faria

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer com que o código seja passado como POST, porem ele manda só o primeiro

codigo. Dessa forma não tem como fazer a modificação de todos os outros registros.

 

O código deve ser recebido através de uma variável (exemplo nome), para isso criarei uma repetição

recebendo as variaveis do formulario, assim encontrando o codigo certo daquele registro.

Vou implementar isso, e posteriormente postar nesse topico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

 

Fiz o seguinte trecho, que captura o codigo de um registro dos dados envolvidos.

 

 $sql = "select codigo from pagamentos where mes = '$mes' and ano= '$ano' and nome='$nome'";
     $resultado = mysql_query($sql);
     
       while ($linha=mysql_fetch_array($resultado)) {
          $codigo = $linha["codigo];
       }
   
       echo $codigo;

Na verdade não precisei dele, quando fui ver tinha um registro no MySQL com todos os dados iguais (menos o codigo), ai não iria

funcionar mesmo, pois somente um registro será acessado. Vacilo meu mesmo...

 

Att,

 

Rodrigo Faria

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.