簡體   English   中英

Javascript獲取文件路徑

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM