我是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>
答案 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?"; }