是否有可能在html表单发布后执行一些PHP代码?

时间:2014-10-06 13:44:38

标签: php html web-services

我是php,html和web服务的新手。 我想要做的是将带有HTML表单的名字变量发送到网络服务,并回应它回复到我表单的同一页面。现在我的问题是在发布firstname变量之前发生了对Web服务的调用。我点击提交按钮后有没有办法执行我的其余PHP代码?所以我可以在设置firstname变量后调用Web服务。

这是我的代码我尝试了一些东西,但他们并没有真正帮助我。 感谢。

<?php
$path = 'c:\\wamp\\www\\nusoap.php';
require_once $path;
$client = new nusoap_client("http://localhost/nusoap/productlist.php?wsdl", TRUE);

?>
<html>
<head>
<title>Personal INFO</title>
</head>
<body>
<?php 
echo '<form method="post" action="">';
echo 'First Name:'; echo '<input type="text" size="12" maxlength="12" name="Fname">'; echo '<br     />';
'<input type="submit" value="Submit" class="button">
</form>'
?>
<?php
if (isset($_POST['Fname']))
{
$Fname = $_POST["Fname"];
$result = $client->call("getName", array($Fname));
}
//echo $Fname;

$error = $client->getError();
if ($error) {
    echo "<h2>Constructor error</h2><pre>" . $error . "</pre>";
}
if ($Fname != NULL or ""){
//$result = $client->call("getName", array($Fname));
}
if ($client->fault) {
    echo "<h2>Fault</h2><pre>";
    echo ($result);
    echo "</pre>";
}
else {
    $error = $client->getError();
    if ($error) {
        echo "<h2>Error</h2><pre>" . $error . "</pre>";
    }
    else if (isset($Fname)){
        echo "<h2>Respond</h2><pre>";
        echo $result;
        echo "</pre>";
    }
}
?>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

要检查表单是否已提交,您可以使用以下代码:

<form action="#" method="POST">
    <button type="submit">Submit</button>
</form>
<?php
     if( $_SERVER['REQUEST_METHOD'] == "POST" ){
          // Do something with posted data
          // For example: if( isset( $_POST['Fname'] ) ) { echo $_POST['Fname']; }
     }
?>

$_SERVER是一个包含多个数组键的全局数组,其中包含有关如何调用服务器,访问者等的信息。在这里,我们使用它来检查请求方法,在这种情况下,在提交表单时是POST。

isset()函数检查指定的字符串或数组是否确实存在。所以在这种情况下我们用它做一个IF语句,说如果变量$_POST['Fname']确实存在,我们应该做点什么。您也可以通过在其前面添加!来做相反的事情。这将说明如果未设置值:

if ( !isset( $_POST['Fname'] ) ) { echo "Did you forget your name?"; }