[PHP]continuar com os valores nas caixas dps de MM_JumpMenu

Started by Kugas, July 21, 2008, 02:51:47 PM

Previous topic - Next topic

Kugas

Boas ppl mais uma vez peço uma pekena ajuda num pekeno problema, vou ja postar o codigo e passo a explicar dps:


$p="\\'parent\\'";

echo \\'\\';

?>

 
echo \\'\\';

?>

 
echo \\'\\';

?>









value="">

value="">


echo \\'\\';

?>

é 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

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

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

Alguem me pode arranjar soluçao sem ser em AJAX... please

geoblast

QuoteAlguem 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.




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

 * 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

desculpa a minha burrice... mas onde utilizo o $_SERVER[\\'PHP_SELF\\']???

geoblast

Quote... 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

hummm nao me esta a funcar

sera k fiz alguma coisa de errado....

Kugas

aqui esta como eu fiz ou como estava na soluçao....

(...)
//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)

?>

(...)


alguma coisa de errado???