我是新來的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>
這應該是這樣做的:'if(isset($ _ POST ['Fname']))'。如果在'if'語句中應該包含更多邏輯,請將其移到那裏。 (這聽起來像*大多數*如果不是*所有*的邏輯屬於那裏)。另一種方法可能是有兩個單獨的頁面,一個用於渲染表單,另一個用於在提交後處理它。 – David 2014-10-06 13:50:02