Получить данные по переменной с помощью Javascript - PullRequest
1 голос
/ 28 сентября 2011

Как мне выбрать фрагмент текста, который был выведен с помощью фрагмента кода JavaScript, и назначить его в конце ссылки в приведенном ниже сценарии:

$(document).ready(function(){
$(document).bind('deviceready', function(){
    var name = $('#name');
    var logo = $('#logo');
    var attacking = $('#attacking');
    var midfield = $('#midfield');
    var defence = $('#defence');
    var rating = $('#rating');
    var url = 'http://79.170.44.147/oftheday.co/fifa/team.php?name=(Piece of text needs to be inputted at the end here, so that the correct data can be fetched)';

    $.ajax({
        url: url,
        dataType: 'jsonp',
        jsonp: 'jsoncallback',
        timeout: 5000,
        success: function(data, status){
           $.each(data, function(i,item){ 
                  var name1 = ''+item.name+'';
                  name.append(name1);
                  });
           $.each(data, function(i,item){ 
                  var logo2 = '<img src="'+item.logo+'" />';
                  logo.append(logo2);
                  });
           $.each(data, function(i,item){ 
                  var attacking2 = ''+item.attacking+'';
                  attacking.append(attacking2);
                  });
           $.each(data, function(i,item){ 
                  var midfield2 = ''+item.midfield+'';
                  midfield.append(midfield2);
                  });
           $.each(data, function(i,item){ 
                  var defence2 = ''+item.defence+'';
                  defence.append(defence2);
                  });
           $.each(data, function(i,item){ 
                  var rating2 = ''+item.rating+'';
                  rating.append(rating2);
                  });

           },
        error: function(){
           name.text('There was an error loading the name.');
           logo.text('There was an error loading the logo.');
           attacking.text('There was an error loading the attacking data.');
           midfield.text('There was an error loading the midfield data.');
           defence.text('There was an error loading the defence data.');
           rating.text('There was an error loading the rating data.');
        }
    });
});
});

Я понимаю, как сделать это в PHP, это было бы что-то вроде вставки ". $ Name." В конец ссылки, где $ name равно выводимому контенту. Я не совсем понимаю, как это сделать здесь, хотя скрипт для вывода предыдущего текста тоже находится в отдельном файле javascript.

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

0 голосов
/ 29 сентября 2011

Вместо того, чтобы создавать параметры запроса самостоятельно с помощью конкатенации строк, лучше использовать параметр data jQuery.ajax(). См. Документы на http://api.jquery.com/jQuery.ajax/.

Ваш вызов ajax будет выглядеть примерно так:

// Notice that there is no name= in the url
var url = 'http://79.170.44.147/oftheday.co/fifa/team.php';
$.ajax({
    url: url,
    data: {
        name: $("#international").text()  // this will put the name=... in the query
    }, 
    dataType: 'jsonp',
0 голосов
/ 28 сентября 2011

var url = '.../oftheday.co/fifa/team.php?name='+encodeURIComponent(someVar);

откуда берется переменная часть? Выпадающий список?

Если так, то

var url = '.../oftheday.co/fifa/team.php?name='+encodeURIComponent($("#someId").val())

UPDATE:

<div onload="onBodyLoad()" id="international"></div>

будет означать

var url = '.../oftheday.co/fifa/team.php?name='+encodeURIComponent($("#international").text())

а что OnLoad = "onBodyLoad ()" должен делать? - Я не верю, что есть такой атрибут на div

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...