Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/08/2010, 23:26
Ruben_C
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 2 meses
Puntos: 0
Ayuda con script complicado

Hola, muchachos, no soy programador asi que necesito una mano por que este script esta muuy lejos de mis capacidades

Este script esta diseñado para procesar un form que tiene un monton de valores, por lo que quiero separarlo. esto lo hago en una plantilla que usa smarty, y a traves de un foreach, pero hasta ahí llega mi genialidad

Dividí el form en paginas, ej: pagina1 para editar los datos de ingreso, como mail usuario y contraseña. Y en la pagina2 el nombre apellidos y telefonos.

Pero si quiero editar los valores de la pagina2, este script arroja un error porque los valores de la pagina1, que son obligatorios (o requeridos) no se han enviado, y por supuesto que no se envian porque no están incluidos en la pagina2

Como puedo hacer que compruebe los datos requeridos incluidos en cada pagina, y no los de otra? o sea, que compruebe solo, y solo si el valor a sido enviado?.

este es el codigo:
Código PHP:
$defnsbyname $this->GetPropertyDefns();


// Get member groups
$groups $this->GetMemberGroupsArray($uid);

// Get group property relations into a union.
$properties = array();
{
  
$tmp = array();
  foreach( 
$groups as $onegroup )
    {
      
$proprelations $this->GetGroupPropertyRelations$onegroup['groupid'] );
      
$tmp RRUtils::array_merge_by_name_required$tmp$proprelations );
      
uasort$tmp, array('cge_array','compare_elements_by_sortorder_key') );
    }
  
$properties cge_array::to_hash($tmp,'name');
}

// do validation of the fields.
foreach( $properties as $propname => $prop )
{
  
$fldtype $defnsbyname[$propname]['type'];
  
$required = ($prop['required'] == 2);
  
  switch( 
$fldtype )
    {
    case 
'0'/* text */
      
if( $required )
    {
      if( !isset(
$params['feu_input_'.$propname]) ||
          empty(
$params['feu_input_'.$propname]) )
        {
          
$params['error'] = 1;
          
$params['message'] = $this->Lang('error_invalidemailaddress').' '.$result[1];
          
$this->Redirect$id'changesettings'$returnid$params );
        }
    }
      break;
      
    case 
'2'/* email */
      
if( $required )
    {
      if( !isset(
$params['feu_input_'.$propname]) )
        {
          
$params['error'] = 1;
          
$params['message'] = $this->Lang('error_invalidemailaddress').' '.$result[1];
          
$this->Redirect$id'changesettings'$returnid$params );
        }
      else
        {
          
$result $this->IsValidEmailAddress$params['feu_input_'.$propname], $uid );
          if( 
$result[0] == false )
        {
          
$params['error'] = 1;
          
$params['message'] = $this->Lang('error_invalidemailaddress').' '.$result[1];
          
$this->Redirect$id'changesettings'$returnid$params );
        }
        }
    }
      break;

   

    
y asi sigue para cada cosa (area de textolistasradio botonescheck boxetc
Se puede o me busco otro?

Última edición por Ruben_C; 19/08/2010 a las 23:28 Razón: error de copiado en script