我需要能够列出目录中的所有文本文件,然后才能编辑每个单独的文本文件。每个文本文件只有一行(50个字符)。下面的代码将列出文本文件以及图像。我只需要编辑文本文件。
foreach (glob("thumb/*.{txt}",GLOB_BRACE) as $filetxt) {
$desc = file_get_contents($filetxt);
$pics = $filetxt;
$pic = str_replace('_alt.txt', '', $pics);
//echo $desc;
echo '<img style="margin:0 20px 7px;" src="'.$pic.'" /><br /><input type="radio" name="radioid" id="'.$filetxt.'" value="'.$filetxt.'" /><input type="text" name="editit" id="'.$filetxt.'" maxlength="50" style="width:400px; height: 20px;" value="'.$desc.'" /><br /><br />';
}
if(isset($_POST['doedit'])){
$line=0;
$newdata=$_POST['editit'];
$datams[$line]=$newdata."\r\n";
$datams=implode($datams);
file_put_contents($filetxt,($datams));
}
答案 0 :(得分:0)
您需要<form>
和<button>
<form method="POST">
<img ... /><br />
<input type="radio" name="radioid" ... />
<input type="text" name="editit" ... /><br />
<br />
<button type="submit">SEND</button>
</form>
服务器向您发送页面。你制作了modyfication并按下SEND
。信息发送到服务器。服务器请参阅$_POST['doedit']
并将信息保存到文件,然后再次向您发送相同的页面。
但是您有很多行<input>
而且所有<input>
需要uniq name
(不是id
)或相同名称但[]
{{1得到<input name='editit[]' ... >
,$_POST['doedit'][0]
等和$_POST['doedit'][1]
,$_POST['editit'][0]
等。
答案 1 :(得分:0)
你遇到的问题不太清楚。你的文件中有一个表单元素,就像furas指出的那样。你能提交表格吗?最后,你有任何错误吗?
除此之外,查看代码,第14行的$filetxt
变量在这种情况下超出范围,因为保存内容的第二个代码块位于foreach循环之外。我认为它应该具有通过单选按钮选择的文件的名称?
在这种情况下,您必须获取所选单选按钮“radioid”的POST值,其中包含将保存数据的文件的名称。
这应该是这样的:
...
$filetxt = $_POST['radioid'];
file_put_contents($filetxt,($datams));
}
以上只是问题的一部分,你仍然需要像furas指出的那样解决重复的名称问题。