0

PHP コードに問題があります。.txtブラウザー (chrome、つまり any) で編集するために2 つを読み込んで、1 つのボタンだけで変更を保存したいと考えています。今までは複数のボタンでできていたのですが、ひとつ変更を保存し忘れると失われてしまう危険性があります。

これが私のコードです:

<?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要素の 1 つが削除されるため、スタイルを変更する必要がある可能性があります。

<?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>要素) を 1 つの<form>タグに入れ、保存ボタンを 1 つにします。

それが完了したら、両方のファイルを保存するためにコードを組み合わせることができます。投稿された値は一度に 1 つしか取得できないことに注意してください。その<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 に答える