是否可以在html表单后执行一些php代码?
问题描述:
我是新来的PHP,HTML和Web服务。 我想要做的是发送一个名称变量与HTML表单到一个web服务,并呼应它的回应回我的表单的同一页。现在我的问题是,在发布firstname变量之前,Web服务的调用发生了。是否有一种方法来执行我的PHP代码的其余部分后,我点击提交按钮?所以我可以在firstname变量设置后调用Web服务。是否可以在html表单后执行一些php代码?
这是我的代码我尝试了一些东西,但他们并没有真正帮助我。 谢谢。
<?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>
答
要检查表单被提交或没有,你可以使用下面的代码:
<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?"; }
这应该是这样做的:'if(isset($ _ POST ['Fname']))'。如果在'if'语句中应该包含更多逻辑,请将其移到那里。 (这听起来像*大多数*如果不是*所有*的逻辑属于那里)。另一种方法可能是有两个单独的页面,一个用于渲染表单,另一个用于在提交后处理它。 – David 2014-10-06 13:50:02