Ver Mensaje Individual
  #7 (permalink)  
Antiguo 03/02/2011, 07:29
Tarzan
 
Fecha de Ingreso: noviembre-2005
Ubicación: Alicante (España)
Mensajes: 242
Antigüedad: 19 años
Puntos: 1
Respuesta: Error de memoria al pasar varios hidden en un form

Pues no he probado con números pero sí que he comprobado, con var_dumps, que las variables contienen el valor correcto. Es muy raro porque, si dejo el campo value de los cinco input hidden vacío, no me genera error alguno.

Tampoco me aparece un error específico en el navegador por el que buscar una solución.. simplemente... pierdo la conexión y me advierte de que el apache ha dejado de funcionar.

LLevo toda la mañana revisando el código y me he implementado un pequeño pseudocódigo para ver si alguien observa algo que yo no detecto:

Código:
Si  !Login à Login

Sino

   Include FORM_CONSULTA_FILTRO.PHP   
   Si Botón Filtrar Pulsado (Formulario 1)
          Asignar valores de los combos  a las variable
          SELECT MARCAS;
          SELECT CATEGORIAS;
          SELECT COLORES;
 
          Si Marca o Categorías Vacíos à Asignar Primer valor del combo
          GENERAR CONSULTA FILTRO
          Si combos no están vacíos, concatenar valores a la consulta

          Ejecutar Consulta y almacenar resultados en $resultadosArticulos

    Include FORM_EDIT_NAME_PEDIDO.PHP
                
    Si Botón Renombrar Pulsado (Formulario 2)
        Si $_POST[‘nombre’] existe y no está vacío
            Asignar el valor del textfield a una variable
            UPDATE NOMBRE;
         Sino
            Mensaje Campo Nombre Vacío
                
    Include FORM_EDIT_ARTICULOS_PEDIDO.PHP
 
    Si Botón Añadir o Botón Reserva Pulsado (Formulario 3)
        Asignar valores de los combos ocultos a las variables
            Si el Nombre del Pedido no está vacío
                Si Botón Añadir Pulsado
                       INSERT ARTICULO EN STOCK PRINCIPAL
                Si Botón Reserva Pulsado
                       INSERT ARTICULO EN RESERVA
            Sino
                Mensaje Campo Nombre Vacío
 

Comprobar si el Pedido tiene Articulos
SELECT NUMERO ARTICULOS PEDIDO;
Si tiene Articulos à SELECT ARTICULOS;
Sino à SELECT NOMBRE Y USUARIO;

Formulario Consulta Artículos

Imagen del Artículo;
Combo Marca;
Combo Color;
Combo Categoría;
TextField Texto;
Botón Filtrar

Nota: La Marca y la Categoría no pueden estar vacíos. Si no se ha seleccionado nada se asignará el primer valor del combo.

Formulario Edita Nombre

Campo Nombre
Botón Renombrar

Formulario Añade Artículos al Pedido

Campo oculto nombre
Campo oculto marca
Campo oculto color
Campo oculto categoría
Campo oculto texto

Si $resultadoArticulos no está vacío (Listado de Articulos ordenado por tipos)
                Foreach artículo
                               Si Tipo de Articulo Cambia
                                               Capa Tipo (color naranja)
                                                Tabla Cabecera (Marca, Nombre, Coste, CheckBox)
                               Fin Si
                               Tabla Marca, Nombre, Coste, CheckBox
                Fin Foreach

Botón Añadir
Botón Reserva

Capa Inferior (Mostrar el Contenido del Pedido que se está Editando)
Tabla Pedido Principal
      Recorrer artículos del Pedido
      Mostrar Artículo
Tabla Reserva
     Recorrer artículos de la Reserva
     Mostrar Artículos

FIN
En el Formulario_Añade_Artículos_Pedido, para cada artículo, creo una Capa Tipo y una Tabla Cabecera, si el Tipo varía. También creo una tabla por cada artículo cuando lo realmente eficiente sería crear una celda, dejando la tabla fuera del foreach. Pero no sé cómo extraer la tabla del foreach si necesito validar con cada iteración que el tipo es el mismo o ha cambiado. En el caso de que el tipo del artículo cambie, creo una cabecera de color naranja y otra cabecera con el nombre de cada campo.

si quito los 5 campos ocultos del Formulario_Añade_Articulos_Al_Pedido funciona muy bien. Añado Articulos seleccionados en los CheckBox, Filtro por otras marcas, etc.

Eso sí. Cada vez que Pulso Añadir, me refresca bien lo que he añadido pero sin mantener los valores de los combos.

Si Escribo estas líneas:

<!-- FORMULARIO AÑADE ARTICULOS AL PEDIDO -->

<form style="margin: 0px;" name="addArticulos" method="POST" action="">
<input type="hidden" name="name_hide" value="<?=$var_nombre?>" />
<input type="hidden" name="marca_hide" value="<?=$var_marca?>" />
<input type="hidden" name="color_hide" value="<?=$var_color?>" />
<input type="hidden" name="categoria_hide" value="<?=$var_categoria?>" />
<input type="hidden" name="texto_hide" value="<?=$var_texto?>" />



Entonces se ejecuta bien pero, en el momento en el que selecciono articulos y pulso añadir, en lugar de refrescar lanza un error de navegador y se queda sin conexión con el apache.

Pero te digo que es sólo al escribir las variables en los value de los hidden.

Es decir, así funciona bien:

<!-- FORMULARIO AÑADE ARTICULOS AL PEDIDO -->
<form style="margin: 0px;" name="addArticulos" method="POST" action="">
<input type="hidden" name="name_hide" value="<?=$var_nombre?>" />
<input type="hidden" name="marca_hide" value=”” />
<input type="hidden" name="color_hide" value="" />
<input type="hidden" name="categoria_hide" value="" />
<input type="hidden" name="texto_hide" value="" />