0

我的 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>

有什么办法吗?

4

2 回答 2

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>
于 2013-02-03T11:24:33.227 回答
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']简单性)

于 2013-02-03T11:21:56.033 回答