Autor Tópico: [PHP]continuar com os valores nas caixas dps de MM_JumpMenu  (Lida 1803 vezes)

Kugas

  • Membro Pro
  • Junior
  • ****
  • Mensagens: 66
  • Karma: 0
    • Ver Perfil
Boas ppl mais uma vez peço uma pekena ajuda num pekeno problema, vou ja postar o codigo e passo a explicar dps:

Código: [Seleccione]
<?PHP

$p="\'parent\'";

echo \'<select name="seguemento"  onChange="MM_jumpMenu(\'.$p.\',this,0)">\';

              echo \'<option value="">&nbsp;&nbsp;&nbsp;&nbsp;--Segmento--</option>\';

    $selcd="SELECT id,nome from tbl_Seguemento WHERE estado=0 order by nome asc";

    $stmtcd= mysql_query($selcd, $conDb);

    while($rowcd=mysql_fetch_array($stmtcd))

     {

echo \'<option value="menuprodutos.php?segue=\'.$rowcd[\'id\'].\'&fam=\'.$_GET[\'Familia\'].\'&pro=\'.$_GET[\'prod\'].\'&qta=\'.$_SESSION[\'qta\'].\'&qtafec=\'.$_SESSION[\'qtafec\'].\'&pvp=\'.$_SESSION[\'pvp\'].\'&totvendas=\'.$_SESSION[\'totvendas\'].\'&totv=\'.$_SESSION[\'totv\'].\'&totvo=\'.$_SESSION[\'totvo\'].\'&esp=\'.$_SESSION[\'esp\'].\'"\';

echo $_GET[\'segue\']==$rowcd[\'id\']?\' selected\':\'\';

echo \'>\'.$rowcd[\'nome\'].\'</option>\';

     }     

echo \'</select>\';

?></td>

          <td><?PHP

echo \'<select name="Familia" onChange="MM_jumpMenu(\'.$p.\',this,0)">\';

echo \'<option value="">--Familia--</option>\';

    $selc="SELECT  id, nome

FROM tbl_Familia

WHERE idseguemento=\'".$_GET[\'segue\']."\'

AND estado=0

ORDER BY nome";

    $stmtc= mysql_query($selc, $conDb);

    while($rowc=mysql_fetch_array($stmtc))

     {

echo \'<option value="menuprodutos.php?segue=\'.$_GET[\'segue\'].\'&fam=\'.$rowc[\'id\'].\'&pro=\'.$_GET[\'prod\'].\'&qta=\'.$_SESSION[\'qta\'].\'&qtafec=\'.$_SESSION[\'qtafec\'].\'&pvp=\'.$_SESSION[\'pvp\'].\'&totvendas=\'.$_SESSION[\'totvendas\'].\'&totv=\'.$_SESSION[\'totv\'].\'&totvo=\'.$_SESSION[\'totvo\'].\'&esp=\'.$_SESSION[\'esp\'].\'"\';

echo $_GET[\'fam\']==$rowc[\'id\']?\' selected\':\'\';

echo \'>\'.$rowc[\'nome\'].\'</option>\';

     }     

echo \'</select>\';

?></td>

          <td><?PHP

echo \'<select name="prod" onChange="MM_jumpMenu(\'.$p.\',this,0)">\';

echo \'<option value="">--Produto--</option>\';

    $selcd1="SELECT  id, codigo,descricao

FROM tbl_Equipamento

WHERE idfamilia=\'".$_GET[\'fam\']."\'

AND estado=0

ORDER BY codigo";

    $stmtcd1= mysql_query($selcd1, $conDb);

        while($rowcd1=mysql_fetch_array($stmtcd1))

     {

echo \'<option value="menuprodutos.php?segue=\'.$_GET[\'segue\'].\'&fam=\'.$_GET[\'fam\'].\'&pro=\'.$rowcd1[\'id\'].\'&qta=\'.$_SESSION[\'qta\'].\'&qtafec=\'.$_SESSION[\'qtafec\'].\'&pvp=\'.$_SESSION[\'pvp\'].\'&totvendas=\'.$_SESSION[\'totvendas\'].\'&totv=\'.$_SESSION[\'totv\'].\'&totvo=\'.$_SESSION[\'totvo\'].\'&esp=\'.$_SESSION[\'esp\'].\'"\';

echo $_GET[\'pro\']==$rowcd1[\'id\']?\' selected\':\'\';

echo \'>\'.$rowcd1[\'codigo\'].\'</option>\';

     }     

echo \'</select>\';

?></td>

<td><input name="qta" type="text" size="4" value="<?=$_SESSION[\'qta\']?>"><?php $_SESSION[\'qta\']=$_GET[\'qta\']?></td>

<td><input name="qtafec" type="text" size="4" value="<?=$_SESSION[\'qtafec\']?>"><?php $_SESSION[\'qtafec\']=$_GET[\'qtafec\']?></td>

<td><input name="pvp" type="text" size="4" value="<?=$_SESSION[\'pvp\']?>"><?php $_SESSION[\'pvp\']=$_GET[\'pvp\']?></td>

<td><input name="totvendas" type="text" size="6" value="<?=$_SESSION[\'totvendas\']?>"><?php $_SESSION[\'totvendas\']=$_GET[\'totvendas\']?></td>

<td><input name="totv" type="checkbox" <?php $_SESSION[\'totv\']==1?\'selected\':\'\'?> value="<?=$_SESSION[\'totv\']=1?>"><?php $_SESSION[\'totv\']=$_GET[\'totv\']?></td>

<td><input name="totvo" type="checkbox" <?php $_SESSION[\'totvo\']==1?\'selected\':\'\'?> value="<?=$_SESSION[\'totvo\']=1?>"><?php $_SESSION[\'totvo\']=$_GET[\'totvo\']?></td>

<td><?PHP

echo \'<select name="esp">\';

echo \'<option value="">--Espa&ccedil;o--</option>\';

    $se="SELECT  id, detalhe

FROM tbl_Espaco

ORDER BY detalhe";

    $stm= mysql_query($se, $conDb);

        while($ro=mysql_fetch_array($stm))

     {

echo \'<option value=\'.$ro[\'id\'].\'\';

echo $_GET[\'esp\']==$ro[\'id\']?\' selected\':\'\';

echo \'>\'.$ro[\'detalhe\'].\'</option>\';

     }     

echo \'</select>\';

?>


é o seguinte como se vê tenho um MMjumpMenu, á medida que seleciono o seguemento automaticamente aparece a familia para escolha e dps de escolher a familia aparece o produto para escolha... ate aki tudo bem mas o que eu keria era guardar os valores das caixas name="qta",name="qtafec",name="pvp" e etc, assim k a sessao MMjumpMenu se executa, isto é no caso se eles preencherem 1º as caixas e selecionar dps o produto prk dps disto ele perde os dados ou valores (como kiserem xamar) atribuidas ás caixas de texto....

nao sei se me fiz entender...mas agradeço ajuda!

serei eternamente grato!
Cumprimentos


fireblood

  • Novato
  • *
  • Mensagens: 3
  • Karma: 0
    • Ver Perfil
[PHP]continuar com os valores nas caixas dps de MM_JumpMenu
« Responder #1 em: Agosto 07, 2008, 11:47:43 »
Se percebi bem.. queres guardar as opçoes que o user escreve na caixa de texto ?

A maneira que me parece mais correcta é usares ajax nas MMJumpBox\'s para fazer os requests das familias... ou então submeteres o form cada vez que escolhes uma familia.. mas e\' possivel que te complique mais a vida desta maneira.

Kugas

  • Membro Pro
  • Junior
  • ****
  • Mensagens: 66
  • Karma: 0
    • Ver Perfil
[PHP]continuar com os valores nas caixas dps de MM_JumpMenu
« Responder #2 em: Agosto 09, 2008, 07:25:24 »
pois... mas eu nao percebo nadade ajax...    se houvesse outra maneira em php ou html... ate mesmo em javascript (na kual ainda nao percebo muito)... era muito bom! agradecia as ajudas

Abraços...

Kugas

  • Membro Pro
  • Junior
  • ****
  • Mensagens: 66
  • Karma: 0
    • Ver Perfil
[PHP]continuar com os valores nas caixas dps de MM_JumpMenu
« Responder #3 em: Agosto 28, 2008, 09:33:47 »
Alguem me pode arranjar soluçao sem ser em AJAX... please  

geoblast

  • Novato
  • *
  • Mensagens: 4
  • Karma: 0
    • Ver Perfil
[PHP]continuar com os valores nas caixas dps de MM_JumpMenu
« Responder #4 em: Agosto 28, 2008, 09:06:55 »
Citar
Alguem me pode arranjar soluçao sem ser em AJAX... please  


Olá.

A melhor forma de fazeres isso é na verdade com Ajax. Esta é uma forma simples de o fazeres

Estas são as funções de Javascript que accionam, a primeira, o pedido do Ajax ao servidor e, a segunda, recebo a resposta XML e cria a drop com os dados recebidos.

Código: [Seleccione]



/******************************************************

 * Funcoes AJAX para carregar os concelhos

 *****************************************************/



function DadosConc(myDistrito,path) {

      //verifica se o browser tem suporte a ajax

      try {

         ajax = new ActiveXObject("Microsoft.XMLHTTP");

      }

      catch(e) {

         try {

            ajax = new ActiveXObject("Msxml2.XMLHTTP");

         }

         catch(ex) {

            try {

               ajax = new XMLHttpRequest();

            }

            catch(exc) {

               alert("O browser não tem recursos para uso do Ajax");

               ajax = null;

            }

         }

      }

      //se tiver suporte ajax

      if(ajax) {

         //deixa apenas o elemento 1 no drop, os outros são excluídos

            // o «form_concelho» é o name da drop

         document.forms[0].form_concelho.options.length = 1;



         idOpcao  = document.getElementById("opcoes"); //opcoes é o id da drop

             //aqui inseres o path do ficheiro de PHP que vai processar o pedido.

         ajax.open("POST", path+"/modules/ajax/ajx_concelhos.php", true);

         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");



         ajax.onreadystatechange = function() {



            //enquanto estiver processando...emite a msg de carregando

            if(ajax.readyState == 1) {

               idOpcao.innerHTML = "Carregando...!";  

            }



            //após ser processado - chama função processXML que vai varrer os dados

            if(ajax.readyState == 4 ) {

               if(ajax.responseXML) {

                  processXMLConc(ajax.responseXML);

               }

               else {

                   //caso não seja um arquivo XML emite a mensagem abaixo

                   idOpcao.innerHTML = "XML nu00E3o carregado";

               }

            }

         }



         //passa os parâmetro para o php

        var params = "distrito="+myDistrito;     

        ajax.send(params);



      }

   }



   function processXMLConc(obj){

      //pega a tag concelho

      var dataArray   = obj.getElementsByTagName("concelho");

      //total de elementos contidos na tag cidade

      if(dataArray.length > 0) {



         //percorre o arquivo XML paara extrair os dados

         for(var i = 0; i < dataArray.length; i++) {

            var item = dataArray[i];

            //contéudo dos campos no arquivo XML

            var codigo    =  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;

            var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;

            idOpcao.innerHTML = "Seleccione um concelho";



            //cria um novo option dinamicamente  

            var novo = document.createElement("option");

                //atribui um ID a esse elemento

                novo.setAttribute("id", "opcoes");

                //atribui um valor

                novo.value = codigo;

                //atribui um texto

                novo.text  = descricao;

                //finalmente adiciona o novo elemento

                document.forms[0].form_concelho.options.add(novo);

         }

      }

      else {

        //caso o XML volte vazio, printa a mensagem abaixo

        idOpcao.innerHTML = "Voltou vazio";

      }      

   }


O ficheiro de php que chamas, é um ficheiro simples que recebe os parametros, executa um query e cria um xml  que vai ser processado pela segunda função de javascript.

no onchange do select, passas como primeiro parâmetro o this.value e segundo parâmetro o url do servidor.

Se quiseres posso-te depois passar para o mail os scripts (aqui não os consigo por, ainda não percebi pq). Podes passar o mail por PM.

Esta é a forma de o fazer com ajax.

Poderás tentar, caso não queiras usar o ajax,colocar o method do form como POST, e chamares o $_SERVER[\'PHP_SELF\'] cada vez que carregas os drops.
Abraços!

Geoblast

Kugas

  • Membro Pro
  • Junior
  • ****
  • Mensagens: 66
  • Karma: 0
    • Ver Perfil
[PHP]continuar com os valores nas caixas dps de MM_JumpMenu
« Responder #5 em: Setembro 03, 2008, 10:29:14 »
desculpa a minha burrice... mas onde utilizo o $_SERVER[\'PHP_SELF\']???

geoblast

  • Novato
  • *
  • Mensagens: 4
  • Karma: 0
    • Ver Perfil
[PHP]continuar com os valores nas caixas dps de MM_JumpMenu
« Responder #6 em: Setembro 03, 2008, 08:12:14 »
Citar
... mas onde utilizo o $_SERVER[\'PHP_SELF\']???


Olá,

Tens aqui um exemplo de como usar o php_self e a forma de o protegeres de ataques.
Abraços!

Geoblast

Kugas

  • Membro Pro
  • Junior
  • ****
  • Mensagens: 66
  • Karma: 0
    • Ver Perfil
[PHP]continuar com os valores nas caixas dps de MM_JumpMenu
« Responder #7 em: Setembro 08, 2008, 10:58:13 »
hummm nao me esta a funcar

sera k fiz alguma coisa de errado....

Kugas

  • Membro Pro
  • Junior
  • ****
  • Mensagens: 66
  • Karma: 0
    • Ver Perfil
[PHP]continuar com os valores nas caixas dps de MM_JumpMenu
« Responder #8 em: Setembro 08, 2008, 02:44:29 »
aqui esta como eu fiz ou como estava na soluçao....

Código: [Seleccione]
(...)<?php

//Get the name of the file (form.php)

$phpself = basename(\'promopda.php\');

//Get everything from start of PHP_SELF to where $phpself begins

//Cut that part out, and place $phpself after it

$_SERVER[\'PHP_SELF\'] = substr($_SERVER[\'PHP_SELF\'], 0, strpos($_SERVER[\'PHP_SELF\'],

$phpself)) . $phpself;

//You\'ve got a clean PHP_SELF again (y)

?>

<form name="form1" method="post" enctype="multipart/form-data" action="<?=$_SERVER[\'PHP_SELF\']?>">(...)



alguma coisa de errado???