Comunidad de diseño web y desarrollo en internet online

PHP y innerHTML en javascript

Citar            
MensajeEscrito el 19 Ago 2014 11:38 pm
Hola!

La situación es la siguiente, tengo un PHP con el siguiente contenido
archivo.php

Código PHP :

<?
echo "Hola Mundo";
?> 

y requiero que mi javascript lo sepa imprimir en un div:

Código Javascript :

 var divid = "1"; // el div que quiero actualizar
 var url = "archivo.php"; // el archivo php
document.getElementById(divid).innerHTML= //aqui es donde no se como imprimir lo que contenga mi php;


no se como hacer que el innerHTML lea mi archivo PHP, seguramente es muy sencillo pero no he encontrado una forma de hacerlo.

Saludos y gracias por su ayuda

Por erigobre

26 de clabLevel



 

México Distrito Federal

chrome
Citar            
MensajeEscrito el 20 Ago 2014 12:38 am
alguien?
por cierto lo manejo de esa forma pues todo esta en 3 archivos

ajax.js
archivo.php

y todo funciona en:
index.php

Por erigobre

26 de clabLevel



 

México Distrito Federal

chrome
Citar            
MensajeEscrito el 20 Ago 2014 12:15 pm
Pues es muy simple:

Código Javascript :

document.getElementById(divid).innerHTML='<?php echo "Hola mundo"; ?>';

:D

Aunque sospecho que no es eso lo que quieres hacer porque es muy tonto.
El problema es que estás hablando de dos contextos totalmente diferentes. JavaScript se ejecuta en el cliente y PHP en el servidor, la única forma que tiene el cliente de obtener contenido del servidor es pidiéndoselo al servidor mediante HTTP.

Me parece que lo que quieres hacer, lo puedes hacer usando Ajax.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 20 Ago 2014 04:15 pm
Efectivamente, el ejemplo fue realizado de manera sencilla para su comprensión, el php completo es así:

archivo.php

Código PHP :

<em class="value100"></em>
                    <?
                    include("../conn.php");
               include("../lunes.php");
   $sql = "Select count(*) as encuestas FROM frecuencia WHERE sucursal ='YAX' AND fecha >='$ayer' AND fecha <='$futuro'";
   $qry = mysql_query($sql);
   $info= mysql_fetch_array($qry);
   $encuestasyax = $info["encuestas"];
   echo "<span>".$encuestasyax."</span>";
               ?>

Donde tengo 12 archivos php como este pero con consultas distintas, que se imprimen en index.php y uso AJAX para hacer que se actualice, pero solo logro que me actualice un solo div, cuando quiero que lo haga a los 12 el archivo ajax.js completo es el siguiente:

Código Javascript :

 var seconds = 4; // intervalo de actualizar div
 //1
     var divid = "1"; // el div que quieres actualizar!
     var url = "cuadros/1.php"; // el archivo de proceso php
 
 //2
     var divid2 = "2"; // el div que quieres actualizar!
     var url2 = "cuadros/2.php"; // el archivo de proceso php
 
 //3
     var divid3 = "3"; // el div que quieres actualizar!
     var url3 = "cuadros/3.php"; // el archivo de proceso php
 
 //4
     var divid4 = "4"; // el div que quieres actualizar!
     var url4 = "cuadros/4.php"; // el archivo de proceso php
  
     function objetoajax1(){
  
         // El XMLHttpRequest object
  
         var xmlHttp;
         try{
             xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
         }
         catch (e){
             try{
                 xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
             }
             catch (e){
                 try{
                     xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                 }
                 catch (e){
                     alert("Tu explorador no soporta AJAX, wey!.");
                     return false;
                 }
             }
         }
         // IE crash
         var timestamp = parseInt(new Date().getTime().toString().substring(0, 10));
         var procesourl = url+"?t="+timestamp;

  
         xmlHttp.onreadystatechange=function(){
             if(xmlHttp.readyState== 4 && xmlHttp.readyState != null){

  
         // Este es el codigo que les pedia para unir aqui y me actualice tooodos los divs con su archivo php correspondiente
                 document.getElementById(divid).innerHTML=xmlHttp.responseText;
            // Me actualiza el primero pero como puedo agregar los otros 12
// Por eso queria una manera de agregar los 11 restante a este bucle, pero no se como.
                 setTimeout('objetoajax1()',seconds*1000);
             }
         }
         xmlHttp.open("GET",procesourl,true);
         xmlHttp.send(null);
     }
   
     window.onload = function(){
         objetoajax1(); // Ejecutamos objetoajax
      }


Espero puedan ayudarme!!! Muchas gracias!

Por erigobre

26 de clabLevel



 

México Distrito Federal

chrome
Citar            
MensajeEscrito el 20 Ago 2014 10:04 pm
alguien? =)

Por erigobre

26 de clabLevel



 

México Distrito Federal

chrome
Citar            
MensajeEscrito el 21 Ago 2014 01:19 am
Hola?????????????????

Por erigobre

26 de clabLevel



 

México Distrito Federal

chrome
Citar            
MensajeEscrito el 25 Ago 2014 04:04 pm
Ya te habia contestado Driver OP

document.getElementById(divid).innerHTML=xmlHttp.responseText;


Si quieres discriminar, puedes hacerlo de la siguiente forma:

Opcion 1: hacer "n" llamadas, una por cada div y que cada llamada utilice un id diferente.

Opcion 2: hacer 1 llamada y enviar de vuelta un dato que te permita métodos, por ejemplo envías un id o mensaje de tu respuesta.


Si eres novato, lo ideal es hacer la primera opción, "n" métodos con "n" llamadas cada una con su propio ID, despues de eso ya te podrás hacer un refactor para reciclar código repetido.

Saludos.

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.