我有一个用户提交开始/结束日期的PHP表单。然后,表单需要从托管在不同URL上的.xml中提取结果。 URL根据用户输入的日期而有所不同 - 日期将成为URL的一部分,如下所示。
所以,简单地说......用户输入日期。它通过URL调用xml文件(随着日期输入到该URL中稍有变化),它会在新页面上显示结果。
如果可能的话,我宁愿通过PHP而不是AJAX来做。
这是我表格的前端:
<html>
<body>
<form action="test_get.php" method="get">
Start Date: <input type="text" id="start" name="start"><br>
End Date: <input type="text" id="end" name="end"> <br>
<input type="submit">
</form>
</body>
</html>
这是&#39; test_get.php&#39;:
<html>
<body>
<form onSubmit="return process();">
Start Date: <?php echo $_GET["start"]; ?><br>
End Date: <?php echo $_GET["end"]; ?>
</form>
</body>
<script>
function process()
{
var url="http://99.999.999.999:81/fmi/xml/fmresultset.xml?-db=Front_Desk&-lay=WebRoomQuery&-findany&-script=WebQueryPSOS&-script.param=snug," + document.getElementById("start").value + "," + document.getElementById("end").value;
location.href=url;
return false;
}
</script>
</html>
但它不起作用。我也试过这个:
<html>
<body>
<?php
$xml=simplexml_load_file("http://99.999.999.999:81/fmi/xml/fmresultset.xml?-db=Front_Desk&-lay=WebRoomQuery&-findany&-script=WebQueryPSOS&-script.param=snug," + document.getElementById("start").value + "," + document.getElementById("end").value"); or die("Error: Cannot create object");
echo $xml->field . "<br>";
echo $xml->data . "<br>";
?>
</body>
</html>
但是,再一次,没有运气。任何人都能看到我失踪的东西吗?
如果需要,我还可以分享我的.xml表单。非常感谢任何帮助 - 我已经解决了这几天!谢谢! :)
更新:这是我更新的test_get.php代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<?php
$url = '"http://69.239.118.197:81/fmi/xml/fmresultset.xml?-db=Front_Desk&-lay=WebRoomQuery&-findany&-script=WebQueryPSOS&-script.param=snug,'.$_GET['start'].','.$_GET['end'].'"';
$xml = simplexml_load_file($url);
echo $xml->field . "<br>";
echo $xml->data . "<br>";
echo var_dump($xml). "<br />";
?>
</body>
</html>
答案 0 :(得分:1)
在您发布的最后一段代码中,您使用的是脚本标记之外的JavaScript,因此这绝对不会起作用。您是否尝试过将$ _GET变量放入查询字符串?
注意*我提取了查询字符串以提高可读性。
我很难在你的环境之外验证这对你有用你有这个:
$xml=simplexml_load_file("http://99.999.999.999:81/fmi/xml/fmresultset.xml?-db=Front_Desk&-lay=WebRoomQuery&-findany&-script=WebQueryPSOS&-script.param=snug," + document.getElementById("start").value + "," + document.getElementById("end").value"); or die("Error: Cannot create object");
我推荐这个:
$url = '"http://99.999.999.999:81/fmi/xml/fmresultset.xml?-db=Front_Desk&-lay=WebRoomQuery&-findany&-script=WebQueryPSOS&-script.param=snug,'.$_GET['start'].','.$_GET['end'].'"';
$xml = simplexml_load_file($url);
************* EDIT *****************
因此,在尝试操作simplexml_load_file
返回的数据后,我决定尝试file_get_contents
。下面的解决方案以字符串格式返回xml文件中的数据值。
$_GET['start'] = '08/30/2017';
$_GET['end'] = '08/31/2017';
$xml = file_get_contents("http://69.239.118.197:81/fmi/xml/fmresultset.xml?-db=Front_Desk&-lay=WebRoomQuery&-findany&-script=WebQueryPSOS&-script.param=snug,".$_GET['start'].','.$_GET['end'].'"');
echo $xml;