Newsgroup: it.comp.www.php
Titolo: Inserire valori di campi con lo stesso nome

Ciao a tutti,
sono un principiante e come tale mi sono arrestato alla prima
difficoltà. Ecco il mio problema:
Ho un form in cui alcuni campi hanno lo stesso "name", e voglio
inserire delle coppie di nomi e cognomi di ipotetici impiegati (ho
semplificato, in realtà i campi sono molti di più). Gli input field
hanno lo stesso nome, quindi ho aggiunto "[]" per farli trattare come
un array.
Quale deve essere lo script per inserire questi dati in un database la
cui tabella prevede tre campi (id, name, surname)?
Grazie mille per l'aiuto.
Questo è il mio html
<form action="newEmployer.php" method="post">
	<label for="employer_name">Name</label><br />
	<input type="text" name="employer_name[]" /><br />
	<label for="employer_surname">Employer Surname</label><br />
	<input type="text" name="employer_surname[]" /><br />
	<label for="employer_name">Name</label><br />
	<input type="text" name="employer_name[]" /><br />
	<label for="employer_surname">Employer Surname</label><br />
	<input type="text" name="employer_surname[]" /><br />
<input class="submit" type="submit" value="Insert Employer" />
</form>

 cui tabella prevede tre campi (id, name, surname)?
domanda  che esula dalla programmazione: 
che senso ha che una persona possa avere due nomi e due cognomi?
in ogni caso, un bel print_r($_POST) ti far� vedere come ti arrivano i
campi inseriti dall'utente.
comunque dovrai ciclare su $_POST[employer_name] e
$_POST[employer_surname] , con foreach ad esempio.
le funzioni php per gestire tutto sono:
per controllare che la variable alla quale vuoi accedere esista:
http://de2.php.net/manual/en/function.isset.php
per interfacciarsi al dbms che usi cerca in questa lista e seleziona il
tuo, verrai rimandato al set di funzioni che ti servono.
http://de2.php.net/manual/en/refs.database.php

 cui tabella prevede tre campi (id, name, surname)?
Visto che raccogli dati correlati e raggruppati (un name e un surname per 
ogni utente) io ti consiglio di NON usare gli array nel form, ma di 
costruirlo dinamicamente:
<?php for($i=1; $i<=10; $i++): ?>
 ...
 <input name="employer_name<?php echo $i; ?>" />
 ...
 <input name="employer_surname<?php echo $i; ?>" />
 ...
<?php endfor; ?>
cosi` non rischi casi di campi lasciati vuoti che ti potrebbero sballare i 
risultati e hai maggior controllo.
Bye.


Grazie Alessandro,
il tuo consiglio è prezioso e la mia spiegazione parziale.
Le coppie nome, cognome vengono clonate da un javascript a partire
dalla prima. Quando la pagina si carica l'utente dispone di una sola
coppia e, se ne ha bisogno, può richiederne altre cliccando sul link
"aggiungi altro impiegato". A questo punto il javascript clona la
selezione di codice corrispondente ai due input fields.
Le soluzioni sono due: o trovo un javascript che clonando lavori anche
sul "name" degli input aumentandone l'id, oppure faccio fare il lavoro
al php gestendo l'array.
Seguendo il consiglio di Redwiz ho eseguito un print_r($_POST)
dell'inserimento (Mario Rossi), (Andrea Bianchi) ed ho ottenuto
Array ( [employer_name] => Array ( [0] => Mario [1] => Rossi )
[employer_surname] => Array ( [0] => Andrea [1] => Bianchi ) )
Qualsiasi aiuto sarebbe davvero apprezzato perchè non so dove mettere
le mani.
Grazie ancora per la collaborazione.

 al php gestendo l'array.
io farei facendo gestire l'id al javascript, perch� se ad esepio hai la
versione del form che hai postato con diciamo 5 elementi, e l'utente(o) si
dimetica di inserire il cognome al secondo, succede che tutti i cognomi ti
shiftano di uno, e quindi fai un gran bel casino :)
far creare i nomi dei campi correttamente al javascript � abbstanza
semplice, devi solo gestire una variabile globale che conta il numero
di utenti

 di utenti
Grazie Redwiz,
per duplicare il codice html sto utilizzando la funzione clone di
jquery. Sinceramente non saprei da dove partire per clonare e
modificare il name degli input. Ad ogni modo, se non sbaglio,
rimarrebbe il problema di trattare ciascun elemento come parte di un
array.
Qualcuno può aiutarmi con un abbozzo di codice?
Grazie ancora.

 Qualcuno pu� aiutarmi con un abbozzo di codice?
non qua, spostati sul gruppo di javascript