Foros del Web » Programando para Internet » PHP »

Sustitucion de variables

Estas en el tema de Sustitucion de variables en el foro de PHP en Foros del Web. Hola En un archivo invoco una clase asi: Código PHP: include( 'core.php' );          $html = "<tr class=\"renglon" . $i . "\"><td id=\"cantidad," . $row [ 'id' ...
  #1 (permalink)  
Antiguo 09/04/2011, 09:27
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 2 meses
Puntos: 10
Sustitucion de variables

Hola

En un archivo invoco una clase asi:
Código PHP:
include('core.php');
        
$html="<tr class=\"renglon".$i."\"><td id=\"cantidad,".$row['id']."\">";
        
$html.="<span ondblclick=\"actualizar('".$row['cantidad']."','0','cantidad,".$row['id']."','cantidad');\">";
        
$html.=$row['cantidad']."</span></td><td id=\"nombre,".$row['id']."\" >";
        
$html.="<span ondblclick=\"actualizar('".$row['nombre']."','0','nombre,".$row['id']."','nombre');\">";
        
$html.=$row['nombre']."</span></td><td>".$row['precioventa']."</td><td>";
        
$html.="<a onclick=\"return confirmLink(this, '".$row['nombre']."','".$row['id']."','".$especial."','".$recargar."');\">";
        
$html.="<img src=IMA/delete.png /></a> </td></tr>";
        
        
$paginar=new paginar;
        
$paginar->results("inventario",$html,2,"","","","","","0,10"); 
Sola una pequeña parte de la clase para paginar:

Código PHP:
class paginar extends db{
    function 
results($concept,$html,$estilos=2,$campos="",$camposcondicionales="",$operadores="",$valores="",$order="",$limit=""){
        
$campos=$db->select($concept,$campos,$camposcondicionales,$operadores,$valores,$order,$limit);
        
$i=1;
        foreach(
$campos as $row){
            
$resultado=$html;
            
$i++;
            if(
$i>$estilos){$i=1;}
        }
        return 
$resultado;
    } 
En la variable $html contiene la variable $row no tiene valores cuando llamo la funcion, hasta cuando esta dentro de la funcion, como se hace la sustitucion de variables en este caso?

Última edición por August; 09/04/2011 a las 09:46
  #2 (permalink)  
Antiguo 09/04/2011, 10:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Sustitucion de variables

mal, porque desde que defines $html estan siendo evaluadas las variables...

¿se te ha ocurrido usar un simple include?

el resultado es mejor...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/04/2011, 08:27
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 2 meses
Puntos: 10
Respuesta: Sustitucion de variables

Cita:
Iniciado por pateketrueke Ver Mensaje
mal, porque desde que defines $html estan siendo evaluadas las variables...

¿se te ha ocurrido usar un simple include?

el resultado es mejor...
Hola pateketrueke, pues tuve un error de logica, porque no sabia bien como hacerle

¿Que intento hacer?

Una clase con una funcion generica para cualquier tabulacion de resultados, con posibilidad de enviarle el diseño y caracteristicas de busqueda

¿Como pienso hacerlo?

El obtener la consulta es el menor de los problemas, lo mas dificil es hacer que esta funcion sea generica para cualquier tipo de diseño, como resolver el problema?, pense en usar prepared-statements, usando la funcion sprintf, para que esta funcion en uno de sus argumentos reciba el html con los caracteres comodin como %d, y ahi ir acomodando los elementos del array

Ejemplo:

Código PHP:
        $elementostabla=array_merge((array)$html,$variables);
        
$resultado=call_user_func_array('sprintf',$elementostabla); 
Pero hay un problema

Fijandose en el diseño que habia puesto

Código PHP:
       $html="<tr class=\"renglon".$i."\"><td id=\"cantidad,".$row['id']."\">";
        
$html.="<span ondblclick=\"actualizar('".$row['cantidad']."','0','cantidad,".$row['id']."','cantidad');\">";
        
$html.=$row['cantidad']."</span></td><td id=\"nombre,".$row['id']."\" >";
        
$html.="<span ondblclick=\"actualizar('".$row['nombre']."','0','nombre,".$row['id']."','nombre');\">";
        
$html.=$row['nombre']."</span></td><td>".$row['precioventa']."</td><td>";
        
$html.="<a onclick=\"return confirmLink(this, '".$row['nombre']."','".$row['id']."','".$especial."','".$recargar."');\">";
        
$html.="<img src=IMA/delete.png /></a> </td></tr>"
Se repiten las veces que se necesitan usar los elementos del array, e incluso se necesita usar la variable $i, que no se obtiene de la consulta sql, incluso otras variables que no van a venir de la consulta sql, que en realidad son muy faciles de obtener

¿Como resolver este nuevo problema?

Enviando como parametro, los indices del nuevo array que hay que construir para meterlo del sprintf, usando la funciones de array de php, se puede usar array_merge, en este caso como se le haria saber el orden de las variables para construir el nuevo array, bueno pero aqui es donde necesito tu consejo

Como le haria? gracias de antemano

Última edición por August; 13/04/2011 a las 08:53
  #4 (permalink)  
Antiguo 13/04/2011, 11:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Sustitucion de variables

creo que deberías investigar algo al respecto de plantillas, o vistas, es lo que te hace falta...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 14/04/2011, 08:48
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 2 meses
Puntos: 10
Respuesta: Sustitucion de variables

Cita:
Iniciado por pateketrueke Ver Mensaje
creo que deberías investigar algo al respecto de plantillas, o vistas, es lo que te hace falta...
Escribi un sistema de templates, en este caso lo usaria asi?:

Código PHP:
class paginar extends db{
function 
results($concept,$estilos=2,$campos="",$camposcondicionales="",$operadores="",$valores="",$order="",$limit=""){

$campos=$db->select($concept,$campos,$camposcondicionales,$operadores,$valores,$order,$limit);
foreach(
$campos as $row){
    
$templating=new templating;
$nombretemplate="TABLA".$concept;
    
$templating->obtener($nombretemplate);
            
$i++;
            if(
$i>$estilos){$i=1;}

}


Invocando el template con el html dentro de un ciclo, una idea como esta es la que tu me mencionas?

No es mucha carga?

Última edición por August; 14/04/2011 a las 08:58

Etiquetas: variables
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 16:54.