【问题标题】:save changes multiple txt保存更改多个txt
【发布时间】:2013-02-03 11:16:10
【问题描述】:

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

有什么办法吗?

【问题讨论】:

    标签: php html forms button save


    【解决方案1】:

    您需要将&lt;textarea&gt; 元素放在同一个&lt;form&gt; 下。这可以使用您提供的代码来完成,但您可能需要进行一些样式更改,因为 .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>
    

    【讨论】:

    • 非常感谢!我已经尝试过了,对我来说效果很好! brf ...我被困住了,这是合乎逻辑的!当然,它们必须是相同的形式!再次感谢!
    • (是的,我终于看到我必须将 fn 更改为 fn1 和 fn2,但是休息很好!!!:D)
    【解决方案2】:

    当然,将所有字段(&lt;textarea&gt; 元素)放入单个 &lt;form&gt; 标记中,并有一个保存按钮。

    完成此操作后,您可以合并代码来保存这两个文件。请注意,您一次只能从一个&lt;form&gt; 获取发布的值,这就是需要合并代码的原因。

    这样就足够了:

    <?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']

    【讨论】:

    • 你!谢谢你的快速回答!!我刚刚尝试进行您建议的更改,但资源管理器显示:致命错误:调用未定义函数:第 40 行 /homez.95/iloftyou/www/syntagma/editor/editor.php 中的 file_put_contents() 跨度>
    • @user1249723 file_put_contents 是 PHP5 中的一个方法,所以你不必使用 fopen 等。你在 PHP4 上吗?我真的建议你立即升级。
    • 是的,你是对的!我忘记改了!!啊,这是一个 oooooold 域,我不再使用它了!感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-27
    相关资源
    最近更新 更多