[英]Javascript get file path
我有一個名為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();
../../data/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位於同一目錄中。
XmlHttpRequest是異步的。 因此,當請求准備就緒時,您需要定義一個回調,例如:
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的異常嘗試解析xml時,xml.getElementsByTagName不是一個函數 :
您的警報聲明有誤。 xmlDoc沒有方法getElementsByTagName。
您可以使用:xmlDoc [0] .getElementsByTagName()獲得第一個城市。
在PHP腳本中
url:"<?php echo site_url('controller/function_name');?>",
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.