Foros del Web » Programando para Internet » PHP »

Llamar una función a otra, diferentes clases

Estas en el tema de Llamar una función a otra, diferentes clases en el foro de PHP en Foros del Web. Buen día comunidad, Verán tengo este problema que no logro descifrar. Tengo dos clases en diferentes archivos y estas son las funciones: user_class.php Código PHP: ...
  #1 (permalink)  
Antiguo 22/04/2014, 10:18
 
Fecha de Ingreso: noviembre-2012
Ubicación: Tegucigalpa
Mensajes: 94
Antigüedad: 11 años, 5 meses
Puntos: 0
Llamar una función a otra, diferentes clases

Buen día comunidad,

Verán tengo este problema que no logro descifrar. Tengo dos clases en diferentes archivos y estas son las funciones:

user_class.php
Código PHP:
public function getUserParam2($user_id)
    {
        if (isset(
$_SERVER['dbHost']) && ($_SERVER['dbUsr']) && ($_SERVER['dbPsw']) && ($_SERVER['db'])) {
            
$root $_SERVER['DOCUMENT_ROOT'];
        }else {
            
$root $_SERVER['DOCUMENT_ROOT']."/";
        }
        include (
$root."classes/connect.php");
        include (
$root."classes/user_type.php");
        
// Create records array
        
$records = array();
        
        
// Execute query
        
if($results $db->query("CALL wm.getUserParam2(".$user_id.");")){
            if(
$results->num_rows){
                while(
$row $results->fetch_object()){
                    
$records[] = $row;
                }
                
$results->free();
                
$this->setUser($records);
            }
       }    
        
      foreach(
$records as $r){
          
$userTypeID $r->userTypeID;
      echo
"
      <div class='form-group'>
              <div class='form-group' style='display: none;'>
                  <input class='form-control' id='user_id' value='"
$r->userID."' name='user_id'>
              </div>
              <div class='form-group'>
                 <label for='username'>User Name</label>
                  <input type='text' class='form-control' id='username' value='"
$r->name."' name='username'>
              </div>
            <div class='form-group'>
                 <label for='user'>Alias</label>
                  <input type='text' class='form-control' id='user' value='"
$r->username."' name='user'>
              </div>
              <div class='form-group'>
                 <label for='password'>Password</label>
                  <input type='password' class='form-control' id='password' value='"
$r->password."' name='password'>
              </div>
      <div>"
;
      }
//END FOR        
   
}// END FUNCTION 
user_type_class.php

Código PHP:
public function getUserTypeSelectParam($userTypeID)
    {
        if (isset(
$_SERVER['dbHost']) && ($_SERVER['dbUsr']) && ($_SERVER['dbPsw']) && ($_SERVER['db'])) {
            
$root $_SERVER['DOCUMENT_ROOT'];
        }else {
            
$root $_SERVER['DOCUMENT_ROOT']."/";
        }
        include (
$root."classes/connect.php");
    
        
// Create records array
        
$records = array();
        
        
// Execute query
        
if($results $db->query("CALL wm.getUserType();")){
            if(
$results->num_rows){
                while(
$row $results->fetch_object()){
                    
$records[] = $row;
                }
                
$results->free();
                
$this->setUserType($records);
            }
       }
        echo 
"
        <label> Type User </label>
        <select class='form-control' id='userTypeID' name='userTypeID'>"
;
        if(!
count($records)){ 
            echo 
"<option>No data available for this view</option>";
        }else{                
            foreach(
$records as $r){
                if (
$userTypeID == $r->userTypeID) {
                    echo
" <option selected value='".$r->userTypeID."'>".$r->userTypeName."</option>";
                }else{
                    echo
" <option value='".$r->userTypeID."'>".$r->userTypeName."</option>";
                }
            }
//END FOR        
        
}// END IF
        
echo"</select>";
    }
// End Function. 
Ahora bien lo que quiero es llamar la función getUserTypeSelectParam, dentro de la función getUserParam2, lo hice de esta manera:
Código PHP:
userType::getUserTypeSelectParam($userTypeID); 
Pero me sale este error:
Código:
Fatal error: Call to undefined method user::setUserType() in C:\xampp\htdocs\classes\user_type.php on line 68
Y no se porque me sale eso, porque si yo llamo la función getUserTypeSelectParam en cualquier documento externo me funciona correctamente. Entonces no se como invocarla dentro de la función.

De verdad se los agradeceré mucho la ayuda que me brinden.
  #2 (permalink)  
Antiguo 22/04/2014, 11:00
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Llamar una función a otra, diferentes clases

Saludos,

Primero verifica que estés llamando con algún require o include la clase en el archivo que la estás llamando. Segundo el método getUserTypeSelectParam no es un método estático por lo que vas a tener que instanciar la clase y luego llamarlo de esta forma $clase->metodo
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 22/04/2014, 11:15
 
Fecha de Ingreso: noviembre-2012
Ubicación: Tegucigalpa
Mensajes: 94
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Llamar una función a otra, diferentes clases

Muchisimas gracias abimaelrc,

En la clase getUserParam2 hago el include ($root."classes/user_type.php"); . Y sobre instanciarla tenia entendido que no se podía dentro de las funciones. Jejejejeje.. Intentaré hacerlo.

Etiquetas: clases, select
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 10:42.