单击按钮时运行php脚本刷新表内容
我有下面的php,希望知道如何在单击submit按钮时使用新的输入值重新运行脚本的底部 我觉得我的剧本只需要最后的润色,但当你认为另一种方法更可取时,不要克制自己不提建议 我知道如何将javascript分配给按钮,但这里我只想重新运行创建soap客户端的底层代码,调用soapweb服务并将xslt应用于生成的XML,并希望在php中使用它,主要是因为我不知道ECMA脚本中的等价物,但也因为脚本负责将生成的表放置在我希望的位置单击按钮时运行php脚本刷新表内容,php,soap,Php,Soap,我有下面的php,希望知道如何在单击submit按钮时使用新的输入值重新运行脚本的底部 我觉得我的剧本只需要最后的润色,但当你认为另一种方法更可取时,不要克制自己不提建议 我知道如何将javascript分配给按钮,但这里我只想重新运行创建soap客户端的底层代码,调用soapweb服务并将xslt应用于生成的XML,并希望在php中使用它,主要是因为我不知道ECMA脚本中的等价物,但也因为脚本负责将生成的表放置在我希望的位置 <!DOCTYPE html PUBLIC "-//W3C//
<!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并单击submit按钮后,底部部分将被填充。我曾希望有人能帮助我,但一如既往,我不能离开它,继续尝试找到解决方案。 我做到了:诀窍是重新打开php文件并将元素值传递给它,当使用GET方法而不是POST时,可以使用表达式$\u POST['element']或$\u GET['element']访问该文件 我得出的最终结果如下:
<!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
echo '<form action="httpCallExample2.php" method="post">
<fieldset>
<legend>Get element details</legend>
<p>
Element: <input name="element" type="text" size="12" maxlength="12" /> <input type="submit" value="Get details"/>
</p>
</fieldset>
</form>
';
?>
<br/>
<?php
if (!empty($_POST['element'])) {
$soapReq = new SoapClient('http://www.webservicex.net/periodictable.asmx?WSDL');
$input = array ("ElementName" => $_POST['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>
首先只生成输入表单,例如,当输入并单击按钮时,这将给出
当然,也可以将发布的值再次输入到输入元素中。我曾希望有人能帮助我,但一如既往,我不能就此置之不理,而是继续努力寻找解决方案。 我做到了:诀窍是重新打开php文件并将元素值传递给它,当使用GET方法而不是POST时,可以使用表达式$\u POST['element']或$\u GET['element']访问该文件 我得出的最终结果如下:
<!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
echo '<form action="httpCallExample2.php" method="post">
<fieldset>
<legend>Get element details</legend>
<p>
Element: <input name="element" type="text" size="12" maxlength="12" /> <input type="submit" value="Get details"/>
</p>
</fieldset>
</form>
';
?>
<br/>
<?php
if (!empty($_POST['element'])) {
$soapReq = new SoapClient('http://www.webservicex.net/periodictable.asmx?WSDL');
$input = array ("ElementName" => $_POST['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>
首先只生成输入表单,例如,当输入并单击按钮时,这将给出
当然,也可以在输入元素中再次输入POST值。这真的是刷新页面的一部分,还是只是用不同的数据重新加载页面?这是一种重新加载,通过http POST请求将附加值传递给php文件。其效果与刷新底部部分并清除输入值相同,因此我现在对此感到满意:-。您的问题使您似乎想用AJAX做些什么,这就是创建部分页面重新加载。您可以始终使用POST或GET将新变量传递给脚本,并根据它们更改输出。我想,这就是Web编程的基础,也是如此。但这是我在这方面的第一步,对我来说都是新鲜事。感谢您的思考。这真的是刷新页面的一部分,还是只是用不同的数据重新加载页面?这是一个重新加载,通过http POST请求将附加值传递给php文件。其效果与刷新底部部分并清除输入值相同,因此我现在对此感到满意:-。您的问题使您似乎想用AJAX做些什么,这就是创建部分页面重新加载。您可以始终使用POST或GET将新变量传递给脚本,并根据它们更改输出。我想,这就是Web编程的基础,也是如此。但这是我在这方面的第一步,对我来说都是新鲜事。谢谢你一直这么想。