Réponse acceptée !
bonjour à tous,
sa y es j'ai résolu mon problème. J'ai appris un truc très utile en php, c'est les regex. Et encore je trouve que celle que j'ai utilisé est pas compliqué. Je vous donne donc ma solution commentée, si quelqu'un à l'avenir à le même souci.
Le formulaire :
<div class=ddentry id="bb$R[sturct_id]">
Type : <input type="text" name="type_$R[sturct_id]" id="type_$R[sturct_id]" value= "$R[struct_type_stream]" ><br />
Nom : <input type="text" name="nom_$R[sturct_id]" id="nom_$R[sturct_id]" value= "$R[struct_nom]"><br />
Libelle : <input type="text" name="libelle_$R[sturct_id]" id="libelle_$R[sturct_id]" value= "$R[struct_libelle]" ><br />
Type des données : <input type="text" name="datatype_$R[sturct_id]" id="datatype_$R[sturct_id]" value="$R[struct_datatype]" >
<input name="lst_sturct_id$R[sturct_id]" id="lst_sturct_id$R[sturct_id]" type="hidden" value="$R[sturct_id]"/>
</div>
$struct_type = $R['struct_type_stream'];
$struct_nom = $R['struct_nom'];
$struct_libelle = $R['struct_libelle'];
$struct_datatype = $R['struct_datatype'];
$sturct_id = $R['sturct_id'];
}
<style type=text/css>
div.ddentry { border:1px solid #999; border-left:20px solid #999;margin-bottom:4px; padding:4px; }
</style>
<h1>Gestion des documents de type $type</h1>
<form name="form" id="form" method=post action='$_SERVER[PHP_SELF]'>
<input type=hidden name=Action value='$_REQUEST[Action]'>
<input type=hidden name=Etape value='valider'>
$html
<input type=submit >
</form>
et le code permettant de valider avec la regex :
function pimpValiderStructureDocument($html)
{
// Parcours des champs du formulaire pour enregister chaque ligne
$struct_ordre=1;
foreach ($_POST as $k => $v)
{
if (! ereg("^lst_sturct_id([0-9]+)$",$k,$o)) continue; // On ne recherche que les champs hidden embarquant l'id de la bdd
$ligne = $o[1]; // numéro de la ligne en cours de traitement
$id = $v; // L'id de l'enregistrement est la valeur de ce champs
$Data = array(); // Créer un tableau vide pour stoker les valeurs à enregistrer
$Data['struct_type_stream'] = $_POST['type_'.$ligne];
$Data['struct_nom'] = $_POST['nom_'.$ligne];
$Data['struct_libelle'] = $_POST['libelle_'.$ligne];
$Data['struct_datatype'] = $_POST['datatype_'.$ligne];
$Data['struct_ordre'] = $ordre;
if ($id){ // Si un id est dispo => enregistrement existant à modifier, sinon enregistrement à créer
dbiUpdateBDArray('stream_structure_2', 'sturct_id', $id, $Data);
$struct_ordre++;
}
else
dbiInsertBDArray('stream_structure_2', $Data);
}
}
olivier

