[SOLUCIONADO] DOM en PHP

Iniciado por leojg, Noviembre 08, 2011, 08:25:21 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Noviembre 08, 2011, 08:25:21 AM Ultima modificación: Febrero 09, 2015, 12:47:09 PM por Expermicid
Hola, estoy haciendo un pequeño proyecto web que en una parte requiere que se le inserte codigo HTML de forma dinamica. Es algo asi como que alguien ingresa información y esta se muestra en la pagina. Pero la forma en la que se muestra requiere que se creen algunos elementos html(divs y fieldsets) que van a contener al texto.

En javascript está la opcion de innerhtml para hacer esto, pero en php que es lo que se usa? Si lo trato de hacer con echo me queda bastante raro...

Saludos

en php se usan segmentos de codigos, aleatorios que puden bariar segun las condiciones
puedes usar envio de bariables normalmente se usa $_GET pero al igual puedes aser lo que gustes el php esta demente
aunque te recomendaria que usaras AJAX

ejemplo tienes una index.php y si quieres cargar contenido puedes usar index.php?hola=hola
y en la condicion que se encuentre dentro de tu documento puedes definir si se encuentra hola en get muestrar algun contenido

o al igual con sesiones. si las sesiones estan definidas que muestre algo diferente

te recomiendo dividir el documentto por cachos sobre la extructura, separar los divs, en diferentes documentos php

NOTA: pero si pasas bariables por GET, es necesario que configures algunas expreciones regulares para evitar la fuga de informacion

entendí mal o la duda específica es de cómo insertar código html en php?
¡< blozzter >!

mmm replanteo mi pregunta

Yo tengo un formulario html que consiste de un textarea y un boton submit. Cuando el usuario le da click al submit lo que deberia suceder es que, lo que hay en el textarea se envia a un script php(ya sea usando $_Get o $_Post eso aun no está definido)... el script lo guarda en una tabla de una base de datos y devuelve todo el contenido de esa tabla, la cual debe ser mostrada en la pagina... Osea, se agrega un mensaje y luego se actualiza toda la lista de mensajes que existe

Por lo que he estado viendo, va por el lado de ajax como decis vos caqca1

Ta pero lo que yo quiero saber, es como mostrar eso que me va a devolver el script php en mi pagina web.

Se puede pasar lo que se devuelve a un script javascript o algo por el estilo?


Te explicas muy, muy mal estimado leojg; pero a lo que entendí:


Ocupas un primer archivo (llamemosle primer.html) en donde tienes un textarea y un submit el cual envian los datos a un segundo archivo (llamemosle segundo.php), este segundo.php procesará la información y la agregará a una base de datos para que después de agregar muestre todo el contenido de la tabla.


Si es así, no es necesario AJAX ni jQuery (framework de JavaScript), lo único que debes hacer es en segundo.php mostrar un mensaje de éxito (en caso de que así sea) y después redireccionar al mismo script pero con una variable get para confirmar el volcado de la DB:

Código: php

<?php
if($_GET['volcar'] == 'si'){
    //Tus funciones para mostrar la DB
}else{
    //Tus funciones para mostrar caso de exito
    //Junto con una redireccion que envie a ?volcar=si
}
?>


Así de sencillo sería, ahora, si lo que quieres es que desde el mismo archivo primer.html al dar click solo cambie el contenido dinámicamente y muestre lo que tu quieres puedes requerir a jQuery.

A continuación te dejaré varios mini-tutoriales respecto a eso:


Validar formulario con jQuery: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Incluír páginas con jQuery: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


En tu caso solo es necesario que utilizes:
Código: javascript

$(function(){
    $.post('archivo_que_recibira_datos.php', {textarea: $('#id_textarea').val(), noCache: Math.random()}, function(resultado){
        if(resultado == 'Mal'){
            alert('Mal');
        }else{
            $('#id_contenido_vacio').html(resultado);
        }
    });
});


En donde archivo_que_recibira_datos.php sería:

Código: php

<?php
$text = $_POST['textarea'];
if($text != 'condicional'){
    echo 'Mal';
}else{
    //Funciones para agregar
    //Funciones para volcar (hacemos un return)
}
?>



Algo así sería.

P.D.: Probablemente tenga algún error puesto que lo escribi apresuradamente, solo te queda leer al respecto.
P.D.2.: Si usarás jQuery ocuparás agregar la librería.
Saludos.
Cada vez que me das Karma me motivas

ahi va, esto es lo que yo decia. Que cambie el contenido dinamicamente.

Gracias ^^

Pues yo haría algo así:

Javascript:
Código: javascript

$(function(){
  $("#boton").click(function(){
    $.post('archivo_procesa.php', {textarea: $("#textarea").val(), noCache: Math.random()}, function(resultado){
      if(resultado == 'mal'){
        alert("Algo salio mal");
      }else{
        $("#resultado").load('mostrar.php');
      }
    });
  });
});


HTML:
Código: html

<div id="resultado">
  <textarea id="textarea" rows="4" cols="150"></textarea><br />
  <input type="button" id="boton" value="Enviar" />
</div>


archivo_procesa.php
Código: php

<?php
require_once('db.php'); //Conectamos a la DB
$test = $_POST['textarea'];
function meter_datos($var)
{
  $query = @mysql_query('INSERT INTO tabla (campo) values ("'.mysql_real_escape_string($var).'")');
}
if(meter_datos($test)){
  echo 'Mal';
}else{
  echo 'Bien';
}
?>


mostrar.php
Código: php

<?php
require_once('db.php'); //Conectamos a la DB
$query = @mysql_query('SELECT * FROM tabla ORDER BY identificado DESC');
while($datos = @mysql_fetch_object($query)){
  echo $datos->campo.'<br />';
}
?>




Algo así, saludos.
Cada vez que me das Karma me motivas