Ir para conteúdo

POWERED BY:

Arquivado

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

Rodrigo Azevedo Lima

Adicionar resposta Ajax a um array PHP

Recommended Posts

Olá para todos,

 

Estou com uma dúvida cruel para resolver.

 

Tenho um script ajax que faz uma consulta ao banco e me traz uma determinada resposta.

Com esta resposta crio um elemento option (dinâmicamente) e o adiciono a um determinado select (criado em php) com outras opções vindas do banco.

 

Até aí tudo bem ok.

 

O que estou precisando é pegar essa resposta vinda do ajax e colocá-la no final do array PHP que contém as opções do select que serão escolhidas pelo usuário.

 

Minha aplicação só salva as opções que estão adicionadas no array, por isso a necessidade de colocar o elemento option criado em ajax no final do array php.

 

Desde já agradeço a todos.

 

Abraços,

 

Rodrigo Lima

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá macielcr7,

 

Já tentei isso, o meu problema e como pegar a resposta que está em Ajax e transformá-la em uma variável php e adicioná-la no array. Sei que vou ter que utilizar o array_push, mas preciso antes "pegar" a variável que se encontra em Ajax.

 

Valeu,

 

Rodrigo Lima

Compartilhar este post


Link para o post
Compartilhar em outros sites
use o Responder Azul respondery.png

ou a 'Resposta Rápida'.

 

php roda antes do html ser apresentado.

 

para apresentar pro usuario 'sem refresh', você terá que fazer esse 'merge' com javascript, e não com php.

oq você pode fazer, é colocar numa session, assim o teu php 'lembrará' da resposta ajax.

 

mas ainda não entendi, explique o problema.

e não a possível solução que você pensou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Willian,

 

Tenho um select que é populado através de uma consulta em PHP com dados vindos do banco. Preciso criar uma opção Outras para o usuário inserir um novo dado que não está salvo no banco. Essa opção outras chama um popup com um compo de texto, onde o usuário digita um dado qualquer e clicar no botão gravar para salvar esse dado em um tabela temporária.

 

Através de uma função ajax, faça a consulta a essa tabela temporária e pego o valor que foi digitado pelo usuário e coloco o mesmo no select junto com os dados que vem do banco.

 

Só que na hora de salvar a opção, o sistema não reconhece a option que foi inserida pelo usuário, pois, a mesma não se encontra no array que eu monto, em php, com os dados vindos do banco. Preciso pegar a resposta em ajax e jogar a mesma dentro do array em php para que o sistema possa reconhecer a opção.

 

Espero que tenha entendido.

 

Obrigado pela ajuda.

 

Rodrigo Lima

Compartilhar este post


Link para o post
Compartilhar em outros sites

Através de uma função ajax, faça a consulta a essa tabela temporária e pego o valor que foi digitado pelo usuário e coloco o mesmo no select junto com os dados que vem do banco.

isso já funciona ?

 

poste como você faz esse trecho de 'colocar no select'.

 

 

 

 

okay agora entendi.

 

esqueça o array php a 'hora dele já foi'.

A solução é adicionar o item no option vindo do popup usando javascript. Pronto, só isso.

cheguei a criar um bem parecido com oq você descreveu uma vez:

http://www.wbruno.com.br/blog/?p=35

 

está [Off] a demonstração, de noite eu corrijo

http://wbruno.com.br/scripts/form-cidade.php

 

o código funciona.. hehe

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue código (em negrito) do Ajax onde adiciono o option no select institution.

 

   //---------- AJAX UTILIZADO NO CAMPO CENTO DE CUSTO ----------//
   //Função responsável para se conectar à página externa (buscaCentroCusto.php) e retornar os resultados.
   is_cost_center.onfocus =  function ajaxCostCenter(){

       req = null;

       //Procura por um objeto nativo (Mozilla/Safari).
       if (window.XMLHttpRequest) {

           req = new XMLHttpRequest();
           req.onreadystatechange = processReqChangeCostCenter;
           req.open("GET", "popup/buscarCentroCusto.php", true);
           req.send(null);

           //Procura por uma versão ActiveX (IE).
       } else if (window.ActiveXObject) {

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

           if (req) {

               req.onreadystatechange = processReqChangeCostCenter;
               req.open("GET", "popup/buscarCentroCusto.php", true);
               req.send();

           }

       }

   }

   function processReqChangeCostCenter() {

     //Apenas quando o estado for "completado".
     if (req.readyState == 4) {

       //Apenas se o servidor retornar "OK".
       if (req.status == 200) {

          [b] var elementOption = document.createElement('option');

           elementOption.value= req.responseText;

           elementOption.text =  req.responseText;

           if(req.responseText){

               resposta = req.responseText;

               try{

                  is_cost_center.add(elementOption, null); //Standard.

               }catch(error){

                   is_cost_center.add(elementOption); //Para o IE.

               }

           }[/b]        } else {

         alert("Houve um problema ao obter os dados: " + req.statusText);

       }

     }

   }
   //---------- FIM DO AJAX ----------//

Compartilhar este post


Link para o post
Compartilhar em outros sites

mostre o método

is_cost_center.add você faz um appendChild() aqui ne?!

 

logo depois do append, dê um alert() no .innerHTML na tag select, e diga oque retornar.

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.