【问题标题】:can form has two actions to php?表单可以对php有两个动作吗?
【发布时间】:2013-02-14 14:53:25
【问题描述】:

我只是在玩表单动作和 php。我不擅长它们,刚开始学习,最近我在玩 fopen、fwrite 和 fclose。还玩弄基本的表单填写,然后 php 调出填写的内容。

我想知道的是,我知道可以调用 fopen、fwrite 来打开/创建一个 txt 文件并将简单的数据输入到 txt 文件中,但是如果我想这样做并让用户看到他们输入的内容.

不太好解释。比方说

a.html --> 假设在这个 html 中

<form action="a.php" method="get">
<input type="text" name="name">
<input type="submit">

a.php -->在a.html中点击提交后这个a.php会有如下代码

echo "My name is $_GET["name"]";

点击a.html中的提交后会显示My name is xxxxx 但是如果我还希望 a.html 中的提交进入另一个假设 b.php 和 b.php 将具有诸如

之类的编码
$filehandle = fopen("text.txt","a+") or die ("sorry error");
fwrite($filehandle, $_GET["name"]);
fclose($filehandle);

我知道如果从a.html 进入a.php 或b.php 中的一个,那么它会起作用,但是是否可以使a.php 和b.php 都起作用,只需单击a 提交。 html?

不想涉及 javascripts 和那些更高级的,因为我还没有达到那个水平,但我只是在想是否有一种简单可行的方法

【问题讨论】:

  • 不,即使可能,这也不是一个好主意,但你可以在第一个文件中包含第二个文件,然后做你想做的事。
  • 这可以通过 javascript 实现。
  • @NickFury:需要使用 JavaScript 复制表单,一个表单可以有一个操作。
  • 像 Akam 一样,我建议通过 include 'b.php'b.php 包含在 a.php 中。

标签: php forms fopen fwrite


【解决方案1】:

最好为此使用 javascript。 AFAIK,当您提交表单时,它将加载您的目标页面,并传递表单中指定的表单变量。

您可以 1) 使用 javascript 来实现 ajax 以您想要的顺序调用您的 php 脚本

或 2)

在您的表单目标页面上,在 PHP 中调用您需要执行的任何其他 PHP 代码

【讨论】:

    【解决方案2】:

    您可以简单地为此定义两个不同的函数。

    function echoUsername($username) {
       echo "My name is $_GET["name"]";
    }
    function writeNameToFile($username) {
       $filehandle = fopen("text.txt","a+") or die ("sorry error");
       fwrite($filehandle, $_GET["name"]);
       fclose($filehandle);
    }
    

    现在只需将这些放到一个名为 functions.php 的文件中,使用 include("functions.php"); 将其包含到 a.php/b.php 中,然后调用如下函数:

    echoUsername($username);
    writeNameToFile($username);
    

    如果你真的想调用这两个页面,没有办法绕过 javascript,但它仍然是一个糟糕的解决方案。

    【讨论】:

    • 啊,好吧....我现在明白你的意思了....让我稍后再试一下:P 我知道不使用 javascript 这不是最好的方法,但因为我不在 javascript水平还没有想到这样的事情,如果可能的话很好奇^_^
    【解决方案3】:

    您需要在a.php 中包含b.php,例如

    <form action="a.php" method="get">
    <input type="text" name="name">
    <input type="submit">
    

    在您的a.php 文件中,您需要包含

    require_once "b.php";
    

    【讨论】:

      【解决方案4】:

      a.php中:

      <?php
          $name = $_GET['name'];   // use post as the form method is better
      
          // then give it to **b.php**:
      
          header('location: b.php?name='.$name);
      
          // or
      
          echo "<a href='b.php?name='".$name.">Link to Page B</a>";
      ?>
      

      您可以通过以下方式在 b.php 中获取该值:

      <?php
            $new_name = $_GET['name'];   // get from the query string
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-21
        • 2023-03-05
        • 2018-06-23
        • 1970-01-01
        • 1970-01-01
        • 2019-06-09
        • 1970-01-01
        • 2014-05-14
        相关资源
        最近更新 更多