Foros del Web » Programando para Internet » Javascript » Frameworks JS »

agregar php a una pagina desde xajax

Estas en el tema de agregar php a una pagina desde xajax en el foro de Frameworks JS en Foros del Web. Buenas noches a todos, ante nada disculpen si este mensaje ya fue posteado o si no forma parte de este foro para lo cual estaria ...
  #1 (permalink)  
Antiguo 16/09/2009, 22:14
 
Fecha de Ingreso: septiembre-2009
Mensajes: 19
Antigüedad: 14 años, 7 meses
Puntos: 0
Buenas noches a todos, ante nada disculpen si este mensaje ya fue posteado o si no forma parte de este foro para lo cual estaria completamente de acuerdo en que lo movieran.

A ver.... no soy muy bueno programando y todo lo tengo medio desordenado asi que intentare explicarme bien.

Tengo una pagina en la cual deseo agregar citas a un taller de vehiculos a clientes mediante sus datos personales, si el usuario no existe entonces mediante una función que elabore y utilizando el fopen agrego un archivo html a la pagina el cual sólo contiene el formulario para gregar al cliente. Una vez guardados los datos, el form desaparece y sigo trabajando con el form origianl en el cual ya puedo agregar al cliente que anteriormente comente.

El problema viene dado cuando por ejemplo el cliente desea agregar un vehiculo nuevo y para ese vehiculo pueden existir muchas compañias aseguradoras la cuales estan asociadas a una tabla y llenan un select mediante php. Sucede que logicamente con fopen imprimira textualmente lo que se encuentra dentro del archivo y las funciones en php no se ejecutan por lo tanto el select no se llenará nunca y necesito que esto asi suceda.

no se si estoy tomando la direccion incorrecta y no se si se puede hacer mediante xajax o por una funcion de php. muchas gracias de antemano

Esta es la función que utilizo
Código PHP:
function add_vehiculo($form_entrada){

//creo el xajaxResponse para generar una salida
$respuesta = new xajaxResponse();

$cedula $form_entrada["ced_cliente"];

//Montar el query
//ESTA PARTE DEL CODIGO ES IRRELEVANTE PARA MI PREGUNTA
$sql=mysql_query("SELECT cliente.idCliente FROM cliente WHERE ced_rif='".$cedula."'");
$id mysql_fetch_row($sql);

//USANDO INCLUDE, XAJAX DA EL ERROR DE LOS HEADERS QUE SE ENVIARON
//DATOS ANTERIORMENTE

//$incluir = include("frm_vehiculo.php");
    
$fp fopen ("frm_vehiculo.php",'r');
    
$codigo="";
    while (
$linea fgets($fp,1024))
    {
    if (
$linea$codigo .= $linea;
    }
    
fclose($fp);

$respuesta -> assign("capauser""innerHTML"$codigo);

return 
$respuesta
cabe acotar que tengo 4 semanas en esta locura y ya casi ni puedo pensar jeje, Gracias

Ayuda!!!!!!!!!

bueno, consegui una solucion un poco rudimentaria pero es la unica que funciono, quite el fopen y a una variable le asigne el valor de toda la pagina.... bastante tosca creo, estaba intentando aproximarme a una metodologia MVC pero a veces me tranco.
Igualmente sigo aceptando cualquier ayuda, posiblemente me facilite el trabajo y me genere una optimización en mi código

Última edición por GatorV; 17/09/2009 a las 09:00
  #2 (permalink)  
Antiguo 17/09/2009, 16:41
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: agregar php a una pagina desde xajax

Cita:
fopen imprimira textualmente lo que se encuentra dentro del archivo
No termino de conceptualizar el flujo de la situacion, pero al hacer un fopen podes situar lo que vos quieras. No necesariamente un html entero.
  #3 (permalink)  
Antiguo 17/09/2009, 21:15
 
Fecha de Ingreso: septiembre-2009
Mensajes: 19
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: agregar php a una pagina desde xajax

Muchas Gracias, es posible que no me haya explicado bien.

Intentare ilustrarlo con un ejemplo

Código PHP:
$fp fopen ("frm_vehiculo.php",'r');
    
$codigo="";
    while (
$linea fgets($fp,1024))
    {
    if (
$linea$codigo .= $linea;
    }
    
fclose($fp);

$respuesta -> assign("capauser""innerHTML"$codigo); 
Cuando esta porcion del codigo es interpretada lo que me imprime es
Código PHP:
<?php

CODIGO PHP CONTENIDO EN EL ARCHIVO frm_vehiculo
.php

?>
entonces incluye los tags php y las funciones en php, es decir que si yo hago una consulta a la base de datos entonces no se realiza porque en la pagina html imprime todo, incluyendo el codigo php como texto "plano" o html.

yo necesito que ese codigo sea interpretado, por eso tuve entonces que realizar una funcion y asignar a una variable todo ese codigo (html + php) para que ejecute la solicitud a la base de datos.

Sinceramente creo ke el inconveniente viene cuando asigno al div "capauser" el contenido en "innerHTML" y logicamente todo lo ke imprime lo leera como si fuera un html.


no se si todavia me estoy explicando mal, pero creo ke aclare un poco mas.

muy agradecido de la respuesta
  #4 (permalink)  
Antiguo 21/09/2009, 07:21
Avatar de eall  
Fecha de Ingreso: noviembre-2008
Ubicación: Concepcion
Mensajes: 127
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: agregar php a una pagina desde xajax

claro, ya que tu estas abriendo el archivo como eso, un archivo, no como un script php. lo que deberías hacer es constriur el html que vas a asignar al combobox o lo que quieras llenar mediante alguna función.
Crea una función que genere tu codigo html y la llamas desde la función xajax.

Código php:
Ver original
  1. include ("frm_vehiculo.php");  //archivo q contiene la funcion
  2.     $codigo= generaHTML($tusParametros);
  3.     $respuesta -> assign("capauser", "innerHTML", $codigo);

en mi blog tengo unos ejemplo de como generar combobox dinamicos con xajax

exito.
__________________
tutoriales xajax, jQuery, PHP y otros en mi blog
  #5 (permalink)  
Antiguo 23/09/2009, 20:41
 
Fecha de Ingreso: septiembre-2009
Mensajes: 19
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: agregar php a una pagina desde xajax

muchas gracias muy util el ejemplo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:24.