Generer inputs suplémentaire

Fermé
naniccino Messages postés 11 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 29 janvier 2015 - 28 janv. 2015 à 10:19
naniccino Messages postés 11 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 29 janvier 2015 - 29 janv. 2015 à 12:46
Bonjour,

voici mon code:


<?php
$filename = 'conf.txt';



if (!file_exists($filename)) die('Fichier'.$filename.'inexistant');

if (isset($_POST['submit'])) {
unset($_POST['submit']);
$filecontent = '';
foreach($_POST as $k => $v) {
$filecontent .= $k . ':' . $v . PHP_EOL;
}
file_put_contents($filename, $filecontent);
echo 'File updated';
}

$filetoarray = file($filename);
foreach ($filetoarray as $line) {
$config[] = explode(':', $line);
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<?php foreach ($config as $value) :?>
<?php echo $value[0], ' '; ?><input type="text" name="<?php echo $value[0]; ?>" value="<?php echo $value[1]; ?>"><br>
<?php endforeach; ?>

<br/><input type="submit" name="submit" value="VALIDER" align="right" style="margin-left: 80px; width: 60px";>
<br/><a href=""><input type="button" name="Reset" value="RESET" align="right" style="margin-left: 80px; width: 60px";></a>
</form>


Le code me permet de modifier un fichier config au format .txt dont la structure est la suivante
ip: 91.121.58.96 91.121.153.42 91.121.153.42
user :UUU
password : PPP
src_path : /var/www/
dst_path : /tmp/data/
packet_size : 30000

Le scripte ouvre le fichier, m'affiche chaque variable dans un input et me permet sa modification. Ma question est la suivante, comment faire pour ajouter un bouton qui me permet de générer des inputs supplémentaire pour les adresses IP si l'utilisateur le souhaite par exemple si il veux rajouter une adresse IP ou en supprimer une tous simplement .

Merci pour votre aide :)

3 réponses

Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 21
Modifié par Xavierdu34 le 29/01/2015 à 11:06
Soit très simplement avec un mini formulaire qui ne contient qu'un bouton et un paramètre, qui dit ajoute tant de champ ip, puis tu le traite en php et tu ré affiche le même formulaire avec les champs en plus. C'est pas très propre, ça necessite un rechargement de la page etc ...

Soit une seule autre solution, JavaScript ...

var i = 0;
newInput = document.createElement('input');
newInput.id = 'IP' + i;
newInput.type = 'text';
newInput.name = 'IP' + i;
newInput.setAttribute('class', 'ipinput');
i++;
document.getElementById('Monform').appendChild(newInput);


Inspire toi de cet exemple que je te fournis pour faire ce qu'il faut ..

Il te faudra coté serveur une boucle pour traiter les n champs input créer par l'utilisateur.
0
naniccino Messages postés 11 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 29 janvier 2015
29 janv. 2015 à 12:42
tu a reçu mon premier commentaire ?
0
naniccino Messages postés 11 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 29 janvier 2015
29 janv. 2015 à 12:46
alors comme je te l'ai dit j'ai trouver un scripte génial qui me permet d'ajouter et d'enlever un champ IP le seul problème c'est que comme je suis novice je n'arrive pas a l'integrer au mien


<?php
$filename = 'conf.txt';

if (!file_exists($filename)) die('Fichier'.$filename.'inexistant');

if (isset($_POST['submit'])) {
unset($_POST['submit']);
$filecontent = '';
foreach($_POST as $k => $v) {
$filecontent .= $k . ':' . implode(' ', $v) . PHP_EOL;
}
file_put_contents($filename, $filecontent);
echo 'File updated';
}

$filetoarray = file($filename);
foreach ($filetoarray as $line) {
$config[] = explode(':', $line);
}



?>





<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<?php foreach ($config as $value) :?>
<br>
<?php $ips = explode(' ', $value[1]); ?>
<?php foreach ($ips as $ip) :?>
<?php if (empty($ip)) continue;



?>
<?php echo $value[0], ' '; ?>
<input type="text" name="<?php echo $value[0]; ?>[]" value="<?php echo $ip; ?>"><br>
<?php endforeach; ?>
<?php endforeach; ?>

<br/><input type="submit" name="submit" value="Valider" align="right" style="margin-left: 80px; width: 60px";>
<br/><a href=""><input type="button" name="Reset" value="Reset" align="right" style="margin-left: 80px; width: 60px";></a>


</form>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<title>Tableau dynamique</title>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
</head>
<script type="text/javascript">
function AddRow(){
var idElementTableau=document.getElementById('table');
var newRow = document.getElementById('table').insertRow(-1);
var newCell = newRow.insertCell(0);
indiceligne = document.getElementById('table').rows.length-1;
newCell.innerHTML = 'ip';
newCell = newRow.insertCell(1);
newCell.innerHTML = '<input type="text" name="ip[]" value="">';
}

function RemoveRow() {
var idElementTableau=document.getElementById('table');
var arrayLignes = document.getElementById('table').rows;
var indiceligne = document.getElementById('table').rows.length-1;
if (indiceligne > 0)
idElementTableau.deleteRow(indiceligne);
}
</script>

<body>
<form id="formulaire" name="formulaire" action="" method="POST" enctype="application/x-www-form-urlencoded">
<table id="table">
<tr>
<td>ip</td>
<td><input type="text" name="ip[]" value=""></td>
</tr>
</table>
<input type="button" value="+" onclick="AddRow()" >
<input type="button" value="-" onclick="RemoveRow()" >
</form>
</body>
</html>




le scripte commence a partir de !Doctype HTML
le code plus haut est le miens celui qui se charge du traitement de fichier et j'aimerais integrer le scripte que j'ai trouver car il fait vraiment ce que je veux pour qu'il interagisse avec le champ IP c'est a dire que l'ajout se fera au niveau de l'ip et que quand on enregistre l'adresse sera ajouter au reste des adresse IP
0