Generer inputs suplémentaire

naniccino Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
naniccino Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   21
 
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   Statut Membre Dernière intervention  
 
tu a reçu mon premier commentaire ?
0
naniccino Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
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