Voici mon soucis.
J'ai un formulaire de deux champs : un hidden et un text.
Etant donné que les infos à rentré sont aléatoire j'ai un bouton qui me permet de
rajouté des champs dans le formulaire.
Lors du submit du ce formulaire les infos sont stockées dans une DB.
Le problème est que lors du l'envoie du form, il prend en compte un nombre défini de donnée
et non le nombre de champs envoyé
EX:
champs 1 : info1
champs 2 : info2
Lors du submit il va me sortir :
CODE
INSERT INTO table (champs caché, champ) VALUES ('champs caché', ''), ('champs caché', 'info 2'), ('champs caché', ''), ('champs caché', ''), ('champs caché', ''), ('champs caché', ''), ('champs caché', ''), ('champs caché', ''), ('champs caché', ''), ('champs caché', ''), ('champs caché', '')
Et le champs 1 n'est pas pris en compte
Voici le code de mes pages
CODE
*************** FORM.HTML ***************
<html>
<head>
<title>Document sans nom</title>
<script language="javascript">
<!--
function create_champ(i)
{
var i2 = i + 1;
document.getElementById('input_'+i).innerHTML = '<div id="champs_'+i+'">ndc '+i+' :<input type="text" name="ndc'+i+'"></div></span>';
document.getElementById('input_'+i).innerHTML += (i <= 10000) ? '<span id="input_'+i2+'"><input class="input2" type="button" onClick="java script:create_champ('+i2+')" value="Insérer un autre champ"></span>' : '';
}
-->
</script>
</head>
<body>
<form name="toto" action="insert.php" method="post">
<input name="operator_id" type="text"/>
<div id="champs_1">
<div align="left"> Produit 1 :
<input name="ndc 1" type="text"/>
</div>
</div>
<div align="left"> <span id="input_2">
<input name="button" type="button" class="input2" onClick="java script:create_champ(2)" value="Insérer un autre champ">
</span></div>
<input type="submit" value="submit"/>
</form>
</body>
</html>
*************** FORM.HTML ***************
*************** INSERT.PHP ***************
<?php
$i = 0;
$req = "INSERT INTO table (operator_id, ndc) VALUES";
while ($i <= 10) {
$operator_id = $_POST['operator_id'];
$ndc = $_POST['ndc'.$i];
// Construction de la requête SQL
$req .= " ('$operator_id', '$ndc'),";
$i++;
}
// Suppression de la dernière virgule de la requête construite
$req = substr($req,0,strlen($req)-1);
$connexion = mysql_connect("localhost","root","") or exit("Erreur 101");
mysql_select_db( "mobtest" , $connexion) or exit("Erreur 102");
mysql_query($req) or exit('Erreur SQL !'.$req.'<br>'.mysql_error());
echo $req;
mysql_close();
?>
*************** INSERT.PHP ***************
<html>
<head>
<title>Document sans nom</title>
<script language="javascript">
<!--
function create_champ(i)
{
var i2 = i + 1;
document.getElementById('input_'+i).innerHTML = '<div id="champs_'+i+'">ndc '+i+' :<input type="text" name="ndc'+i+'"></div></span>';
document.getElementById('input_'+i).innerHTML += (i <= 10000) ? '<span id="input_'+i2+'"><input class="input2" type="button" onClick="java script:create_champ('+i2+')" value="Insérer un autre champ"></span>' : '';
}
-->
</script>
</head>
<body>
<form name="toto" action="insert.php" method="post">
<input name="operator_id" type="text"/>
<div id="champs_1">
<div align="left"> Produit 1 :
<input name="ndc 1" type="text"/>
</div>
</div>
<div align="left"> <span id="input_2">
<input name="button" type="button" class="input2" onClick="java script:create_champ(2)" value="Insérer un autre champ">
</span></div>
<input type="submit" value="submit"/>
</form>
</body>
</html>
*************** FORM.HTML ***************
*************** INSERT.PHP ***************
<?php
$i = 0;
$req = "INSERT INTO table (operator_id, ndc) VALUES";
while ($i <= 10) {
$operator_id = $_POST['operator_id'];
$ndc = $_POST['ndc'.$i];
// Construction de la requête SQL
$req .= " ('$operator_id', '$ndc'),";
$i++;
}
// Suppression de la dernière virgule de la requête construite
$req = substr($req,0,strlen($req)-1);
$connexion = mysql_connect("localhost","root","") or exit("Erreur 101");
mysql_select_db( "mobtest" , $connexion) or exit("Erreur 102");
mysql_query($req) or exit('Erreur SQL !'.$req.'<br>'.mysql_error());
echo $req;
mysql_close();
?>
*************** INSERT.PHP ***************
J'ai fais pas mal de recherche et pas mal de modification mais rien a faire ca ne fonctionne pas
Si vous avez une proposition ou une piste pouvant m'aider je vous en serais très reconnaissant.
Merci d'avance et bonne journée à tous.