Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将变量传递到jQueryAjax_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 将变量传递到jQueryAjax

Javascript 将变量传递到jQueryAjax,javascript,jquery,ajax,Javascript,Jquery,Ajax,我陷入了一成不变的状态。我希望有人能帮忙 基本上,我正在用jQuery构建一个AJAX移动web应用程序。我能够很好地解析特定的XML文件,但我希望能够根据单击的链接解析其他XML文件,并将它们动态加载到同一个DIV或UL中 因此: 单击Link1,加载XML1 单击Link2,加载XML2 我希望能够做到这一切客户端,所以没有PHP(或者这是一个坏主意?)。这是我一直使用的jquery代码: $(document).ready(function() { $

我陷入了一成不变的状态。我希望有人能帮忙

基本上,我正在用jQuery构建一个AJAX移动web应用程序。我能够很好地解析特定的XML文件,但我希望能够根据单击的链接解析其他XML文件,并将它们动态加载到同一个DIV或UL中

因此:

单击Link1,加载XML1
单击Link2,加载XML2

我希望能够做到这一切客户端,所以没有PHP(或者这是一个坏主意?)。这是我一直使用的jquery代码:

$(document).ready(function() {          

        $("a.load_ajax").click(loadAjax());

        function loadAjax() {
            var fileID = get('?lineID=');

            var dataID = "xml/" + fileID + ".xml"

            $.ajax({
                type: "GET",
                url: dataID,
                dataType: "xml",
                success: parseXml
            });

            function parseXml(xml) {
                $(xml).find("train").each(function() {
                    $("ul#ajax-output").append('<li>' + $(this).find("time").text() + '</li>');
                });
            }
        }           

});
$(文档).ready(函数(){
$(“a.load_ajax”)。单击(loadAjax());
函数loadAjax(){
var fileID=get('?lineID=');
var dataID=“xml/”+fileID+“.xml”
$.ajax({
键入:“获取”,
url:dataID,
数据类型:“xml”,
成功:parseXml
});
函数解析xml(xml){
$(xml).find(“train”).each(函数(){
$(“ul#ajax输出”).append(“
  • ”+$(this.find(“time”).text()+”
  • ); }); } } });
    这根本不起作用。我一直在使用GET在url中传递变量。因此HTML中的链接转到/?lineID=SBD_to_Union,它应该将名为SBD_to_Union.XML的XML文件加载到


    对任何人都有意义吗?我非常感谢您的帮助。

    您似乎正在努力从锚中的url获取该行。使用$(this)获取单击链接的href属性。然后,您可以使用正则表达式(如果url如所述)删除除用于构建XML链接的行id之外的所有内容。我假定XML是服务器端的,并且相对于当前url。如果没有,则需要调整路径。我冒昧地将函数内联,对内容进行了一些压缩编辑:单击处理程序应返回false,以防止链接实际执行其默认操作

    $(function() {          
    
        $("a.load_ajax").click( function() {
            var fileID = $(this).attr('href').replace(/.*?lineID=/,'');
    
            var dataID = "xml/" + fileID + ".xml"
    
            $.ajax({
                type: "GET",
                url: dataID,
                dataType: "xml",
                success:  function(xml) {
                    $(xml).find("train").each(function() {
                        $("ul#ajax-output").append('<li>' + $(this).find("time").text() + '</li>');
                    });
                }
            });
            return false;
        });          
    });
    
    $(函数(){
    $(“a.load_ajax”)。单击(函数(){
    var fileID=$(this.attr('href').replace(/.*?lineID=/,'');
    var dataID=“xml/”+fileID+“.xml”
    $.ajax({
    键入:“获取”,
    url:dataID,
    数据类型:“xml”,
    成功:函数(xml){
    $(xml).find(“train”).each(函数(){
    $(“ul#ajax输出”).append(“
  • ”+$(this.find(“time”).text()+”
  • ); }); } }); 返回false; }); });
    是否检查了
    get
    函数是否返回正确的数据

    添加
    警报(fileID)就在
    get(..)之后

    但是为什么不创建直接指向xml文件的URL,而不是动态解析和创建URL呢


    只需在html中创建指向
    xml/SBD\u to_Union.xml

    的链接,乍一看,我认为您的ajax()语法有点不正确

    您使用查询字符串是出于特定原因吗?如果没有,我会尝试为HTML链接提供您试图获取的XML文件的绝对URL:

    <a href="xml/file123.xml"></a>
    
    
    
    然后试试这个:

    $("a.load_ajax").click(function(e) {
     e.preventDefault();
     var url = $(this).attr('href');
    
                $.ajax({
                    type: 'GET',
                    url: url,
                    dataType: 'xml',
                    success: function(response) {
                        $(response).find('train').each(function() {
                            $('ul#ajax-output').append('<li>' + $(this).find('time').text() + '</li>');
                    }
                });
    
            });
    
    $(“a.load\u ajax”)。单击(函数(e){
    e、 预防默认值();
    var url=$(this.attr('href');
    $.ajax({
    键入:“GET”,
    url:url,
    数据类型:“xml”,
    成功:功能(响应){
    $(响应)。查找('train')。每个(函数(){
    $('ul#ajax output').append('
  • '+$(this.find('time').text()+'
  • '); } }); });

    我没有测试过这个,但它应该可以满足您的需要。

    Hrm?如果没有服务器端代码,为什么查询参数会影响任何东西?…如果您有50个链接,那么在这个示例中没有50个链接,只有2个链接,那么为什么要编写一个50个链接的解决方案呢?是的,我只是想给Scott一些想法。rejex的答案在任何c语言中都是可伸缩的ase@Gaby@bobsoap@CRice,在我的电脑死掉之前,这是一个链接,指向真正的男人如何解决前面提到的可伸缩性问题-:)你有太多的空闲时间。如果关闭javascript,URL可能会加载另一个包含正确数据的页面。这是我的假设。因为我希望以后能够在项目中使用其他XML文件,而不仅仅是这个。@Scott-我想他是在建议链接href是一个可以直接使用的XML路径。@Scott,我我的意思是,与其让每个链接指向
    ,不如让它直接链接到
    xml/somexmlforthislink.xml
    <a href="xml/file123.xml"></a>
    
    $("a.load_ajax").click(function(e) {
     e.preventDefault();
     var url = $(this).attr('href');
    
                $.ajax({
                    type: 'GET',
                    url: url,
                    dataType: 'xml',
                    success: function(response) {
                        $(response).find('train').each(function() {
                            $('ul#ajax-output').append('<li>' + $(this).find('time').text() + '</li>');
                    }
                });
    
            });