Request on the same page with Xmlhttprequest

Asked

Viewed 258 times

2

Good morning,

I’m using a script with 3 files. ->index.php (where the request is made) ->contacto.php (is the search and processing of the request) ->ajax.js (which reads and loads the.php contact file by Xmlhttprequest)

Problem, if I put the form in the index.php file it works at 1000 wonders, but if you make a request in the.php contact there is no answer. That is, the request has search variables where it shows me the calendar at a certain rate and I need to make a request from the contact page.php to read the previous month and next, after the initial search.

I have already set session variables, with cookies, with javascript div update and I can’t order from the contact.php page.

Any idea ?

ajax.js

function CriaRequest() {
     try{
         request = new XMLHttpRequest();
     }catch (IEAtual){

     try{
         request = new ActiveXObject("Msxml2.XMLHTTP.4.0");
     }catch(IEAntigo){
         try{
             request = new ActiveXObject("Microsoft.XMLHTTP");
         }catch(falha){
             request = false;
         }
     }
 }

 if (!request)
     alert("Seu Navegador não suporta Ajax!");
 else
     return request;
 }

 /**
 * Função para enviar os dados
 */
 function getDados() {
 // Declaração de Variáveis
 var nome   = document.getElementById("txtnome").value;
  var ano   = document.getElementById("ano").value;
  var mes   = document.getElementById("mes").value;
 var result = document.getElementById("Resultado");
 var xmlreq = CriaRequest();
 // Exibi a imagem de progresso
 result.innerHTML = '<img src="http://localhost/booking_testes/ajax/loader_8.gif"/>';
 // Iniciar uma requisição
   xmlreq.open("GET", "ajax/contato.php?txtnome=" + nome + "&ano="+ ano + "&mes="+ mes, true);
 // Atribui uma função para ser executada sempre que houver uma mudança de ado
 xmlreq.onreadystatechange = function(){
     // Verifica se foi concluído com sucesso e a conexão fechada (readyState=4)
     if (xmlreq.readyState == 4) {

         // Verifica se o arquivo foi encontrado com sucesso
         if (xmlreq.status == 200) {
             result.innerHTML = xmlreq.responseText;
         }else{
             result.innerHTML = "Erro: " + xmlreq.statusText;
         }
     }
 };
 xmlreq.send(null);
 }

php contact.

<?php
session_start();
// Verifica se existe a variável txtnome
if (isset($_GET["txtnome"])) {

$nome = $_GET["txtnome"];
$month =  $_GET['mes'];
$year = $_GET['ano'];
$diaActual=date("j");

if(empty($month)){
    $month=11;
    $year=date("Y");
    $diaActual=date("j");
}
 # Obtenemos el dia de la semana del primer dia
 # Devuelve 0 para domingo, 6 para sabado
 $diaSemana=date("w",mktime(0,0,0,$month,1,$year))+7;
 # Obtenemos el ultimo dia del mes
 $ultimoDiaMes=date("d",(mktime(0,0,0,$month+1,1,$year)-1));
 $meses=array(1=>"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", 
 "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
 # Obtenemos el ultimo dia del mes
$server = "localhost";
$user = "root";
$senha = "";
$base = "ajax_booking";
 $conexao = mysql_connect($server, $user, $senha) or die("Erro na conexão!");
mysql_select_db($base);
// Verifica se a variável está vazia
if (empty($nome)) {
    $sql = "SELECT * FROM contato";
} else {
    $nome .= "%";
    $sql = "SELECT * FROM contato WHERE nome like '$nome'";
}
sleep(3);
$result = mysql_query($sql);
$cont = mysql_affected_rows($conexao);
// Verifica se a consulta retornou linhas
if ($cont > 0) {
?>

<br />
<table cellpadding="2" cellspacing="5" border="0" class="calendarTable"> 
    <tbody>
        <tr>
            <th class="dash_border">Lun</th>
            <th class="dash_border">Mar</th>
            <th class="dash_border">Mer</th>
            <th class="dash_border">Jeu</th>
            <th class="dash_border">Ven</th>
            <th class="weekend dash_border">Sam</th>
            <th class="weekend dash_border">Dim</th>
        </tr>
    </tbody>
    <tr>
    <?php
        $last_cell=$diaSemana+$ultimoDiaMes;
        // hacemos un bucle hasta 42, que es el máximo de valores que puede
        // haber... 6 columnas de 7 dias
        for($i=1;$i<=42;$i++)
        {
            if($i==$diaSemana)
            {
                // determinamos en que dia empieza
                $day=1;
            }
            if($i<$diaSemana || $i>=$last_cell)
            {
                // celca vacia
                echo '<td onclick=""class="cal_reg_off"> </td>';
            }else{
                // mostramos el dia
                if($day==$diaActual){
                ?>
                    <td style="background-color:#00ECFF;?>"id="<?php echo $i; ?>"  onclick="getLightbox('<?php echo $day; ?>-<?php echo $month; ?>-<?php echo $year; ?>',1);"onmouseover="getElementById('<?php echo $i; ?>').className='mainmenu5';" onmouseout="getElementById('<?php echo $i; ?>').className='cal_reg_on';" class="cal_reg_on"><?php echo $day; ?><div class="cal_text hide-me-for-nojs">80 place(s) disponible(s)</div></td>
                <?php
                }
                else{
                ?>
                    <td id="<?php echo $i; ?>"  onclick="reply_click('<?php echo $day; ?>-<?php echo $month; ?>-<?php echo $year; ?>',1);"onmouseover="getElementById('<?php echo $i; ?>').className='mainmenu5';" onmouseout="getElementById('<?php echo $i; ?>').className='cal_reg_on';" class="cal_reg_on"><?php echo $day; ?><div class="cal_text hide-me-for-nojs">80 place(s) disponible(s)</div></td>
                <?php
                }
                $day++;
            }
            // cuando llega al final de la semana, iniciamos una columna nueva
            if($i%7==0)
            {
                echo "</tr><tr>\n";
            }
        }
        ?>
</table> 
<?php
} else {
    // Se a consulta não retornar nenhum valor, exibi mensagem para o usuário
    echo "Não foram encontrados registros!";
}

}
?>
  • Are the php files in the same directory? any errors in php or javascript? Can you put the php and javascript you are using in the question?

  • all on the same page, I’ve already used url with http and no url. :

  • this is only in the trial version without Pdo and the like..

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.