我的PHP代码存在一些问题。我想加载两个.txt
以使用浏览器进行编辑(chrome,即any),并通过一个按钮保存更改。到目前为止,我可以使用多个按钮来完成它,但如果您忘记保存一个更改而丢失它,那就有风险。
这是我的代码:
<?php
$fn = "../txt/example.txt";
if (isset($_POST['agenda1a']))
{
$content = stripslashes($_POST['agenda1a']);
$fp = fopen($fn,"w") or die ("Error");
fputs($fp,$content);
fclose($fp) or die ("Error");
}
?>
<div class="editor">
<div class="editor_titulo">Agenda 1</div>
<form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
<textarea name="agenda1a" cols="55" rows="25" class="editor_texto"><?php readfile($fn); ?>
</textarea>
<input name="submit" type="submit" class="btn_entrar" id="btn_guardar" value=" Guardar este menú ">
</form>
</div>
<?php
$fn = "../txt/example2.txt";
if (isset($_POST['agenda1b']))
{
$content = stripslashes($_POST['agenda1b']);
$fp = fopen($fn,"w") or die ("Error");
fputs($fp,$content);
fclose($fp) or die ("Error");
}
?>
<div class="editor">
<div class="editor_titulo">Agenda 2</div>
<form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
<textarea name="agenda1b" cols="55" rows="25" class="editor_texto"><?php readfile($fn); ?>
</textarea>
<input type="submit" class="btn_entrar" id="btn_guardar" value=" Guardar este menú ">
</form>
</div>
有什么办法吗?
答案 0 :(得分:2)
您需要将<textarea>
元素置于同一<form>
下。这可以使用您提供的代码完成,但您可能需要进行一些样式更改,因为其中一个.editor
元素已被删除。
<?php
$fn1 = "../txt/example.txt";
if (isset($_POST['agenda1a']))
{
$content = stripslashes($_POST['agenda1a']);
$fp = fopen($fn,"w") or die ("Error");
fputs($fp,$content);
fclose($fp) or die ("Error");
}
$fn2 = "../txt/example2.txt";
if (isset($_POST['agenda1b']))
{
$content = stripslashes($_POST['agenda1b']);
$fp = fopen($fn,"w") or die ("Error");
fputs($fp,$content);
fclose($fp) or die ("Error");
}
?>
<div class="editor">
<div class="editor_titulo">Agenda 1</div>
<form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
<textarea name="agenda1a" cols="55" rows="25" class="editor_texto"><?php readfile($fn1); ?>
</textarea>
<div class="editor_titulo">Agenda 2</div>
<textarea name="agenda1b" cols="55" rows="25" class="editor_texto"><?php readfile($fn2); ?>
</textarea>
<input type="submit" class="btn_entrar" id="btn_guardar" value=" Guardar este menú ">
</form>
</div>
答案 1 :(得分:1)
当然,将所有字段(<textarea>
元素)放入单个<form>
标记中,并只有一个保存按钮。
完成后,您可以合并代码以保存这两个文件。请注意,您一次只能从一个<form>
获取发布的值,这就是代码需要合并的原因。
这样的事情应该足够了:
<?php
$file_one = "../txt/example.txt";
$file_two = "../txt/example2.txt";
$file_one_content = file_get_contents($file_one);
$file_two_content = file_get_contents($file_two);
if (isset($_POST['submit']))
{
// Save the files
$file_one_content = stripslashes($_POST['agenda1a']);
file_put_contents($file_one, $file_one_content);
$file_two_content = stripslashes($_POST['agenda1b']);
file_put_contents($file_one, $file_two_content);
}
?>
<form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
<div class="editor">
<div class="editor_titulo">Agenda 1</div>
<textarea name="agenda1a" cols="55" rows="25" class="editor_texto"><?php echo $file_one_content ?></textarea>
<input name="submit" type="submit" class="btn_entrar" id="btn_guardar" value=" Guardar este menú ">
</div>
<div class="editor">
<div class="editor_titulo">Agenda 2</div>
<textarea name="agenda1b" cols="55" rows="25" class="editor_texto"><?php echo $file_two_content ?></textarea>
<input type="submit" class="btn_entrar" id="btn_guardar" value=" Guardar este menú ">
</div>
</form>
(注意:上面的代码使用file_get_contents
/ file_put_contents
,因此您可以打开/保存1行代码,并且只检查$_POST['submit']
以简化)