Ecco un metodo che utilizza HTML puro che ottiene vi quasi esattamente dove si vuole essere, e utilizza solo HTML:
<form action="options.php" method="post">
<input type="text" name="options[deptid]" id="deptid" />
<input type="text" name="options[deptname]" id="deptname" />
<input type="submit" name="submit" id="submit" value="save" />
</form>
che darebbe in PHP:
$post_options = array(
'options' => array(
'deptid '=> '[that input element value]',
'deptname' => '[that input element value]'
)
);
che è quindi possibile (compreso igienizzante) l'accesso di questo tipo:
$post_options = array('options');
if (is_numeric($post_options['deptid'] && $post_options['deptid'] > 0) {
// Do whatever
}
if (is_string($post_options['deptname'] && strlen($post_options['deptname'] > 2)) {
// Do whatever
}
EDIT
Oppure ... Volete fare riferimento alla deptid
nell'attributo input name
e utilizzarlo per modificare la riga per un nome di reparto?Che sembra indicare qualcosa di simile:
<?php
$deptid = 1;
$deptname = 'Department of Silly Walks';
?><input type="hidden" name="options[<?=$deptid?>]" value="<?=$deptname?>">
quali uscite:
<input type="hidden" name="options[1]" value="Department of Silly Walks">
http://codepad.org/DtgoZGe7
Il problema di questo è che il valore $deptid
diventa un valore che non è in realtà il nome o direttamente riferimento. Penso che questo sia potenzialmente problematico da implementare a causa di questa astrazione del valore dal server al client e viceversa, quindi consiglierei quello che ho in cima invece. Non è molto diverso nella pratica, ma è più o meno auto-documentante.
Nota: se si desidera serializzare un elenco di reparti, è un po 'più complicato. Si potrebbe, per esempio, provate questo:
<input type="text" name="options[][deptid]" id="deptid" />
<input type="text" name="options[][deptname]" id="deptname" />
che aggiungerebbe un valore indicizzato per ogni input
. Tuttavia ... Non sarebbero stati direttamente associati. Quindi otterresti, invece, due array a indice zero per ogni chiave.
Quello che vorrei suggerire in questo caso è quello di utilizzare Javascript per aggiungere input
elementi ciascuno nuovo reparto, in modo da poter dare a ciascuno un numero come:
<input type="text" name="options[0][deptid]" id="deptid" />
<input type="text" name="options[0][deptname]" id="deptname" />
<br/>
<input type="text" name="options[1][deptid]" id="deptid" />
<input type="text" name="options[1][deptname]" id="deptname" />
<br/>
<input type="text" name="options[2][deptid]" id="deptid" />
<input type="text" name="options[2][deptname]" id="deptname" />
<br/>
<input type="text" name="options[3][deptid]" id="deptid" />
<input type="text" name="options[3][deptname]" id="deptname" />
O fare il metodo postback vecchia scuola e utilizzare PHP contare $POST['options']
e "manualmente" aggiungere una nuova "riga" di input con lo stesso indice. È una trappola comune, quindi devi solo pensarci se questo è ciò che stai cercando ad un certo punto.
cURL è il tuo amico –
@HankyPanky - Che cosa cURL ha a che fare con questo? –
Perché ha detto "usando solo script php". Quindi, se deve pubblicare i dati su questa pagina usando solo lo script php, per un principiante ho pensato che CURL sarebbe stato buono. –