Ver Mensaje Individual
  #6 (permalink)  
Antiguo 08/04/2005, 15:11
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
La forma que usas para trabajar con esos "arreglos" que comentas .. no es necesario que uses un indice:

<input id="despr" name="despr[<?php echo $n?>]" type="text" value="<?php echo $row_entrega['desp_real']; ?>"></td>

Con usar:
nombre[] .. sobra .. (no es necesario que uses una variable más como contador/acomulador).

Independiente si lo haces así o a tu manera (realmente usar "[]" es PHP quien crea un indice desde 0 a N numérico en incrementos de a 1 unidad . .)

Pero si usas varíos arreglos (arrays) simultanemos donde su "relación" es su mismo indice .. entonces sigue como estas.

Para PHP .. ese arreglo lo puedes recorrer en el arreglo (array) del método que usas en tu formulario que es por donde envias y así lo recibes en dicho script: method= ...

Suponiendo que uses POST, cuentas uno de tus arrays su elementos .. y usas un bucle for() para recorrer tus N arrays de mismo n° de elementos para ir aplicando a cada pasada de este la validación que requieras ...:

Por ejemplo:

Código PHP:
for($n=0$n<count($_POST['for']); $n++){
   if (empty(
trim($_POST['for'][$n]))){
       die(
"Alguno de los datos del arreglo \"for\" .. no tiene valor");
   }
   
// y así con el resto de los que quieras validar ...

No sé realmente que tienes que hacer ante un campo de tu formulario sin valor .. pero la técnica es esa. El ejemplo termino el script si hay alguno sin valor (die()) con ese mensaje de error .. tu podrías ir acomulando en un array los campos con error para dar algún aviso más personalizado y exacto.

Por cierto .. trim() (www.php.net/trim) de PHP sólo elimina espacios delante y detras de una cadena dada además de saltos de línea y otros códigos de control .. para que lo tengas en cuenta.

Si quieres detectar un espacio en una cadena .. podrías usar str_pos() o bien expresiones regulares (si es que no permites espacios entre una cadena dada (string)) previo aplicar "trim()".


Un saludo,