2012-07-30 10 views
6

Tengo una pregunta, ¿cómo manejas una gran cantidad de datos de formularios con php y mysql?Cómo manejar el enorme formulario

que tienen las siguientes: ~ 50 campos (texto de entrada, checkboxex, seleccionar, de área de texto)

Después de eso, tengo que guardar esto en la base de datos MySQL, y necesito seleccionar y filtrar estos datos. ¿Tiene práctica y qué usa en sus proyectos?

+0

¿Hay una pregunta específica? No existe un inhibidor nativo que le impida presentar 50 campos (sin duda sobre POST - con GET puede eventualmente encontrarse con los límites de longitud de URL). – Utkanos

+0

[aquí tienes] (http://stackoverflow.com/questions/1411811/how-to-post-a-form-with-many-fields-with-jquery) suponiendo que tu 'huge' es igual a' many fields' y no 'campos grandes' –

+0

Quiero decir que tal vez haya marcos o métodos que puedan ayudarme. Estoy muy cansado de manejar a través de $ _POST ['field'] -> insertar en la base de datos. – d7p4x

Respuesta

6

Para organizar los datos en dichos formularios, puede usar matrices de formularios HTML. Supongamos que presentamos una gran cantidad de datos sobre alguna casa. Me gustaría dividir los datos en secciones, por ejemplo: general, geo, features, descriptions y componer formularios como este.

<form> 
 
    <fieldset> 
 
    <legend>General information</legend> 
 
    <input type="number" name="general[pax]" value="" placeholder="Pax" /> 
 
    <input type="number" name="general[pets]" value="" placeholder="Pets" /> 
 
    <input type="text" name="general[type]" value="" placeholder="Type" /> 
 
    </fieldset> 
 

 
    <fieldset> 
 
    <legend>GEO data</legend> 
 
    <input type="text" name="geo[longitude]" value="" placeholder="Longitude" /> 
 
    <input type="text" name="geo[latitude]" value="" placeholder="Latitude" /> 
 
    </fieldset> 
 

 
    <fieldset> 
 
    <legend>Features</legend> 
 
    <input type="checkbox" name="features[internet]" value="1" title="Internet" /> 
 
    <input type="checkbox" name="features[pool]" value="1" title="Pool" /> 
 
    <input type="checkbox" name="features[conditioner]" value="1" title="A/C" /> 
 
    </fieldset> 
 
</form>

ACTUALIZACIÓN: usando <fieldset> y <legend> etiquetas y un poco de jQuery (no demostraron) puede mostrar fácilmente/ocultar los diferentes grupos y nombrarlos a su gusto.

Después de la presentación de dicha forma podrá acceder a los valores como:

$pets = (int)$_POST['general']['pets']; 
$features = $_POST['features']; 

$lon = (float)$_POST['geo']['longitude']; 
$lat = (float)$_POST['geo']['latitude']; 

Se facilitará su desarrollo y reducir los esfuerzos para controlar/análisis sintáctico/enumerar los diferentes grupos de datos.

ACTUALIZACIÓN: o uno más posible variante es

<input type="text" name="params[param1]" value="" /> 
<input type="text" name="params[param2]" value="" /> 
<input type="text" name="params[param3]" value="" /> 

mientras que en PHP

$params = $_POST['params']; // getting our isolated array of parameters 
$names = array_keys($params); // extracting names from array 
$values = array_values($params); // extracting values from array 

$mysql->insert($names, $values) // and trying to implement desired solution 
+0

Sí, me gusta también, pero cuando abro mi script php y escribo smth como: $ varA = $ _POST ['param1] .... $ varZ = $ _POST ['param1000'] Me deprimí. – d7p4x

+0

@ d7p4x, actualicé mi respuesta con las etiquetas '

' y '' para poder organizar grupos de datos en un formulario. –

+1

No creo que se requiera

, uso simplemente name = "program [1]" .. name = "program [10]" y funciona =) pero no es cómodo. Quiero smth: $ params [] [] = $ _POST ['params']; $ mysql-> insert ($ params ['names'], $ params ['values']) ¿es reall? =) – d7p4x

1

Yo dividiría la información en secciones y solo mostrar/pedir un subconjunto por sección. Cada sección tiene un botón guardar/siguiente, y los datos se guardan en cada envío de sección.

Cuestiones relacionadas