我有以下 php 并希望知道如何在单击提交按钮时使用新的输入值重新运行脚本的底部。
我觉得我的脚本只需要最后润色,但是当您认为另一种方法更可取时,请不要不提建议。
我确实知道如何将 javascript 分配给按钮,但在这里我希望只重新运行底部代码(创建soap客户端,调用soap Web服务并将xslt应用于生成的XML)并希望在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
我希望在输入元素被赋予值并单击提交按钮后填充底部。