Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/01/2010, 13:40
Brahyam
 
Fecha de Ingreso: enero-2005
Mensajes: 122
Antigüedad: 19 años, 9 meses
Puntos: 2
Respuesta: ayuda con addAssign

Hola zerokull...

Mira, hay varias cosas...

Al PHP le encanta los arrays o arreglos de datos, cuando a tu funcion le llega el parametro $form_entrada ahi ya tienes un array con todos los datos, yo de ti pondria a iterar ese arreglo y ejecutaria la sentencia SQL ejecutandose las veces que hayan datos en el array de esta manera:

Código PHP:
function procesar_formulario($form_entrada){
    
     foreach(
$form_entrada as $form){
           
$i++;
           
$ssql "update notasrh set comentario1='".$form["comentario".$i]."'where emailUsuarios='".$form['idCorreo'.$i]."'and id_empleadosRH='".$form['idRH'.$i]."'"

           if (
mysql_query($ssql)){
                
$salida .="Su comentario ".$i." se guardo con exito"."<br>";
           }else{
                
$salida .= "No se ha insertado el comentario ".$i.". Este es el error: " mysql_error()."<br>";
           } 
     }

     
$respuesta = new xajaxResponse(); 
     
$respuesta->addAssign(respuesta,innerHTML,$salida);
     return 
$respuesta;


Cuando defino la variable $salida .= .... lo que hago es ir almacenando los resultados de cada iteracion del array en esa variable, osea ir "concatenando" los valores, lo que tendrias con eso la respuesta de todos tus insert o updates en una sola variable y en el HTML la pintas en un solo div o en lo que quieras y te quedaria algo asi:

Su comentario 1 se guardo con exito
Su comentario 2 se guardo con exito
Su comentario 3 se guardo con exito
No se ha insertado el comentario 4. Este es el error: error_mysql
No se ha insertado el comentario 5. Este es el error: error_mysql
Su comentario 6 se guardo con exito
Su comentario 7 se guardo con exito
...
Su comentario 10se guardo con exito

Ahora, si no quieres de esa manera, lo puedes hacer como lo estas haciendo, aunque no es lo mejor pero tambien se puede, no necesitas instanciar el objeto $respuesta todas las veces que que tengas comentarios, con ese solo objeto puedes retornar las veces que quieras asi:

Código PHP:
$respuesta = new xajaxResponse(); 
$respuesta->addAssign("respuesta2","innerHTML",$salida2);
$respuesta->addAssign("respuesta3","innerHTML",$salida3);
$respuesta->addAssign("respuesta4","innerHTML",$salida4);
$respuesta->addAssign("respuesta5","innerHTML",$salida5); 
...
return 
$respuesta
Se puede pero tendrias que definir todas las salidas tu mismo, encambio con un arreglo el lo hace por ti y si mas adelante tienes mas comentarios no tendrias que ir y colocar en tu funcion ... $salida11; $salida12 ... etc.

Los retornos en las funciones los debes de hacer usa sola vez, cuando haces un return te retorna una sola vez, no tiene ningun sentido hacer varios return porque siempre te va a retornar un solo valor, false o true.

Espero te sirva, si tienes alguna otra duda lo comentas..