次のphpがあり、送信ボタンがクリックされたときにスクリプトの下部が新しい入力値で再実行されるようにする方法を知りたいです。
私のスクリプトには最後の仕上げが必要だと思いますが、別のアプローチが望ましいと思われる場合は、提案を差し控えないでください。
ボタンに JavaScript を割り当てる方法は知っていますが、ここでは一番下のコード (soap クライアントの作成、soap Web サービスの呼び出し、結果の XML への xslt の適用) のみを再実行し、それを php で実行したいと考えています (主に'ECMAスクリプトで同等のものがわからないだけでなく、スクリプトが結果のテーブルを私が望む場所に配置することを処理するためです)。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Get element details</title>
<style type="text/css">
@import url("Swift.css");
</style>
</head>
<body>
<br/>
<?php # httpCallExample2.php
echo '<form action="httpCallExample2.php" method="post">
<fieldset>
<legend>Get element details</legend>
<p>
Element: <input name="element" type="text" size="12" maxlength="12" /> <button type="submit" name="submit" value="update">Get details</button>
</p>
</fieldset>
</form>
';
echo '<br/>';
$soapReq = new SoapClient('http://www.webservicex.net/periodictable.asmx?WSDL');
$input = array ("ElementName" => $element);
$result = $soapReq ->
__soapCall("GetAtomicNumber",
array(
'parameters' => $input
)
);
$XML = new DOMDocument();
$XML -> loadXML ( $result -> GetAtomicNumberResult );
$xslt = new XSLTProcessor();
$XSL = new DOMDocument();
$XSL -> load('showResults.xslt');
$xslt -> importStylesheet( $XSL );
echo $xslt -> transformToXML( $XML );
?>
</body>
</html>
css ファイル (テーブル レイアウトの一部のみを含む) については気にしないでください。ただし、使用する xslt は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<table>
<thead>
<tr>
<th colspan="2">SOAP results</th>
</tr>
</thead>
<tbody>
<xsl:for-each select="//NewDataSet/Table/*">
<tr>
<td><xsl:value-of select="name()"/></td>
<td><xsl:value-of select="."/></td>
</tr>
</xsl:for-each>
</tbody>
</table>
</xsl:template>
</xsl:stylesheet>
結果のページは次のようになります
Carbon
入力要素に値が与えられ、送信ボタンがクリックされた後、下部が埋められると予想される場所。