2013-05-18 69 views
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)); 
} 
+0

答案的数量(0)可能表明你的问题不是很清楚。 – michi

回答

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)或名称相同但[]<input name='editit[]' ... >得到$_POST['doedit'][0]$_POST['doedit'][1]等和$_POST['editit'][0]$_POST['editit'][1]

+0

图像和文本文件已在服务器上。这是编辑现有的文本文件。文本文件仅列出图像的标题。 – ibiz

+0

这里很难用几句话来解释这一切。 – furas

0

你的问题不太清楚。你的文件中是否有一个表单元素,就像furas指出的那样。你能否提交表格?最后,你是否有任何错误?

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

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

这是它是如何应该是:上述

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

的仅仅是问题的一部分,你还是要解决重名问题作为furas指出。