我有一个名为auction.xml的文件,该文件位于名为data的文件夹中。调用它的javascript位于另一个名为htdocs的文件夹中名为A2的文件夹中。我如何从htdocs调用它?我试过了../../data/auction.xml,但它没有用。我已经尝试使用php在同一个文件夹中的另一个文件上调用它并且工作正常。我在php中使用的代码是
$url = '../../data/customers.xml';
然后被放入
if(filesize($url)>0)
这就是我想在javascript中调用的内容
var url = "../../data/auction.xml";
xmlhttp.open("GET",url,false);
然而,第二个不起作用。
当前功能
var url = "getAuction.php";
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var xmlDoc=xmlhttp.responseText;
var str;
var i;
str=("<p>Category : <select onchange=\"reveal(this)\" name=category>");
var categoryList= []; //Array contains the distinct values
var x=xmlDoc.getElementsByTagName("Product");
var cy=xmlDoc.getElementsByTagName("Category");
if(x.length>0)
{
for (i=0;i<x.length;i++)
{
var category=cy[i].childNodes[0].nodeValue;
var currentOption ="<option value=" + category + ">" + category + "</option>";
//Verify is category has already be added
if(!contains(categoryList,category))
{
categoryList.push(category);
str += currentOption;
}
}
str+="<option id=\"others\" value=\"Others\">Others</option>";
}
else
str+="<option id=\"others\" value=\"Others\">Others</option>";
str+=("</select></p>");
document.getElementById('category').innerHTML=str;
}
}
xmlhttp.open("GET",url ,false);
xmlhttp.send();
答案 0 :(得分:0)
../../数据/ auction.xml
不是网址,因此您无法通过httpRequest访问它。你必须使用javascript调用.php - 为你获取Xml的页面。 PHP具有在服务器上执行的好处,您可以访问其上的所有本地文件。 Javascript在浏览器中在您的客户端上运行。
Javascript:
var url = "getAuction.php";
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var xmlDoc=xmlhttp.responseText;
console.log(xmlDoc);
//do smoething with xmlDoc
}
}
xmlhttp.open("GET",url ,false);
xmlhttp.send();
getAuction.php:
echo file_get_contents("../../data/auction.xml"); //or whatever you want to do with the xml
此示例中的php文件需要与javascript位于同一目录中。
XmlHttpRequests是异步的。因此,您需要在请求准备就绪时定义回调,如:
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var xmlDoc=xmlhttp.responseText;
console.log(xmlDoc);
//do smoething with xmlDoc
}
}
xmlhttp.open("GET","auction.xml",false);
xmlhttp.send();
来自SO Exception xml.getElementsByTagName is not a function, when trying to parse an xml:
您的提醒声明错误。 xmlDoc没有方法getElementsByTagName。
您可以使用以下方式获取第一个城市:xmlDoc [0] .getElementsByTagName()
答案 1 :(得分:0)
在脚本中的php
url:"<?php echo site_url('controller/function_name');?>",