Я новичок в php, html и веб-сервисах. , что я пытаюсь сделать, это отправить переменную первого имени с формой HTML в веб-службу и повторить ее обратно на той же странице моей формы. теперь моя проблема заключается в том, что вызов веб-службы происходит до того, как я напишу переменную firstname. есть ли способ выполнить остальную часть моего PHP-кода после нажатия кнопки отправки? поэтому я могу вызвать веб-службу после того, как будет задана переменная firstname.Возможно ли выполнить некоторый php-код после сообщения html-формы?
это мой код, я попробовал кое-что, но мне это не помогло. спасибо.
<?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', переместите его туда. (Это звучит как * most * if not * all * логики принадлежит там.) Другой подход может состоять в том, чтобы иметь две отдельные страницы: одну для рендеринга формы и одну для обработки ее после ее отправки. – David