1

我需要能够列出目录中的所有文本文件,然后能够编辑每个单独的文本文件。每个文本文件只有一行(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));
}
4

2 回答 2

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>

服务器向您发送页面。您进行修改并按SEND。信息进入服务器。服务器查看$_POST['doedit']信息并将其保存到文件中,然后再次向您发送相同的页面。

但是你有很多行,<input>并且都<input>需要 uniq name(不是id)或相同的名称但 with [] <input name='editit[]' ... >to get$_POST['doedit'][0]$_POST['doedit'][1]$_POST['editit'][0]$_POST['editit'][1]等等。

于 2013-05-18T01:44:59.200 回答
0

你遇到的问题不是很清楚。正如furas指出的那样,您的文件中是否有表单元素。你可以提交表格吗?最后,您是否遇到任何错误?

除此之外,查看您的代码,$filetxt在这种情况下,第 14 行的变量超出了范围,因为您保存内容的第二个代码块位于 foreach 循环之外。我认为它应该具有单选按钮选择的文件名?

在这种情况下,您必须获取所选单选按钮“radioid”的 POST 值,其中包含将保存数据的文件的名称。

这就是它应该是的样子:

  ...
    $filetxt = $_POST['radioid'];
    file_put_contents($filetxt,($datams));
  }

以上只是问题的一部分,您仍然需要解决 furas 指出的重复名称问题。

于 2013-05-18T02:07:32.800 回答