我的PHP代码遇到了一些问题。我想加载两个.txt
以使用浏览器进行编辑(chrome,即任何),并通过一个按钮保存更改。到目前为止,我可以使用多个按钮来完成此操作,但是如果您忘记保存一个更改,那将是有风险的,因为如果您忘记保存一个更改,您将失去它。
这是我的代码:
<?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>
有什么办法吗?
您需要
将<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>
当然,将所有字段(<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']
以简单起见)