Ir para conteúdo

Arquivado

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

JeimysonAlmeida

Problemas com requisição AJAX

Recommended Posts

<script type="text/javascript">
var http = false;

if(navigator.appName == "Microsoft Internet Explorer") {
http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
http = new XMLHttpRequest();
}

function espera(nome){
document.getElementById(nome).innerHTML = "<img src='./progresso.gif' width='20'>";
setTimeout(inserir_tabela(nome),4000);

}
function inserir_tabela(nome) {

http.open("GET", "script_tabela.php?nome="+nome+"", true);
http.onreadystatechange=function() {
if(http.readyState == 4) {
document.getElementById(nome).innerHTML = http.responseText;
}
}
http.send(null);
}

</script>

Pessoal este ai de cima é meu codigo JS, a função dele é ao clicar em um 'checkbox' seja acionado a função espera, que nada mais é que uma animação gif de progresso está por sua vez aciona a função inserir_tabela que é uma requisição para uma pagina em PHP.

 

checkbox...

<input type="checkbox" name="tabela" value="cliente_01" onclick="espera(this.value)" >

E o retorno exibo na div

<div id="cliente_01"></div>

Script PHP. (script_tabela.php)

<?php
$hash = ($_REQUEST['nome']);
$buscar_insert = mysql_query("SELECT * FROM `textil_import_temp` WHERE hash='$hash' AND usuario='$user'",$dg);
$cont = mysql_num_rows($buscar_insert);
if($cont == 0){
//$insert = mysql_query("INSERT INTO `textil_import_temp` (hash,usuario) VALUES ('$hash','$user')",$dg);
$div.="</script>";
$div.= "<div class='alert alert-info alert-dismissable'>";
$div.= "<i class='fa fa-exclamation'></i> ";
$div.= "<b>Atenção ! </b> O que fazer com a tabela atual ?";
$div.= "<br>";
$div.= "<b>Substituir</b> - apaga toda a tabela atual do cliente, e substitui por essa.";
$div.="<br>";
$div.="<b>Inserir</b> - apenas adiciona os itens desta tabela a tabela de destino.";
$div.="<br>";
$div.= "<input type='button' onclick='qualquer(cliente_01)' class='btn btn-primary' value='Substituir'> "; //PROBLEMA
$div.= "<input type='button' onclick='qualquer(cliente_01)' class='btn btn-danger' value='Inserir'> "; // PROBLEMA
$div.= "$decisao";
$div.= "$hash";
$div.= "</div>";
echo $div;
}else{
$delete = mysql_query("DELETE FROM `textil_import_temp` WHERE hash='$hash' AND usuario='$user'",$dg);
echo "";
}
?>

Como podem ver "script_tabela.php" retorna uma div, até ai tudo bem consigo a div retorna aparece certinho, o problema e que ao clicar

nesses botões que criei eu queria que executa-se outra acão JS. que mudaria o conteudo da DIV

<div id='cliente_01'></div>. Mais não muda nem a pal, eu consigo manipular está div com

document.getElementById('cliente_01').innerHTML = "qualquer texto";

até o inicio da requisição AJAX, mais depois não mais consigo mudar seu conteudo, já to perdendo os cabelos.

E como se depois da requisição eu perde-se o controle sob a DIV, o controle passa todo para script_tabela.php, eu queria ele de volta.

:D . Não sei se expliquei direito mais se alguém poder me ajudar eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

useu uma funcao que ja´esta carregada se você puxa a pagina php pra gerar outro code jquery a funcao nao vai presta você tem que chama novamente a biblioteca jquery na pagina php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Jeymilson qual seria essa outra ação JS? solicitar novamente a div ou é outra função?

Oi sergio, essa qualquer mudaria o conteudo do

<div id="cliente_01"></div>

Ou seja

 function qualquer(nome){
  document.getElementById(nome).innerHTML = "outro texto"; // No caso "cliente_01"


}

Ou seja no PHP digo qual div quero mudar o conteudo, mais não muda de maneira nenhuma se acionada pela pagina "script_tabela.php", simplesmente a div continua com o retorno do PHP.

 

Executei varias outras funções para ver se consigo descobrir o problema,

inclusive chamei na pagina php uma função

function qualquer(){

location.href = "http://www.uol.com.br";

}

Assim funciona ele redireciona normal, ai fiz outro teste criei uma

<div id="teste"></div>

e coloquei a função

function qualquer(nome){
  document.getElementById('teste').innerHTML = "cliente_01";

}

Ele altera a div teste e escreve nela: [object HTMLDivElement].

 

conseguiu entender ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

useu uma funcao que ja´esta carregada se você puxa a pagina php pra gerar outro code jquery a funcao nao vai presta você tem que chama novamente a biblioteca jquery na pagina php

Oi marcos, obrigado pela atenção.

Mais não entendi bem, você teria como me dar um exemplo? Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jeimyson eu acabei de perceber uma coisa no seu código e pode ser esse o problema:

$div.= "<input type='button' onclick='qualquer(cliente_01)' class='btn btn-primary' value='Substituir'> "; //PROBLEMA

está faltando as 'aspas' pois cliente_01 é uma string. ficaria

$div.= "<input type=\"button\" onclick=\"qualquer('cliente_01')\" class=\"btn btn-primary\" value=\"Substituir\"> "; //PROBLEMA

Quando precisar ter aspas duplas recomendo usar (\") que irá escrever justamenteo aspas no HTML.

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.