can表单对php有两个操作


can form has two actions to php?

我只是在玩表单操作和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-->在.html中单击提交后,这个a.php将具有的代码

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

在.html中单击提交后,它将显示我的名字是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上单击一次提交即可起作用?

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

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

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

或2)

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

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

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是没有办法的,但它仍然是一个糟糕的解决方案。

您需要像一样将b.php包含在a.php

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

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

require_once "b.php";

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