2013-02-24 5 views
0

Было высказано предположение, что я пытаюсь объяснить свою проблему без кода, поэтому здесь он идет. У меня есть веб-страница, в которой перечислены связки с именами проектов, как показано в этом jsfiddle. То, что я хочу сделать дальше, - это отобразить вторую веб-страницу после щелчка по ссылке проекта пользователем. На второй веб-странице нужно будет сделать второй запрос ajax, например, в этом Second page jsfiddle, чтобы получить новую информацию, чтобы отобразить резюме проекта, цитаты и имена для этого конкретного проекта. Часть, которая меня убивает, - это запрос ajax для второй страницы, в настоящее время имеет номер 504216b6e4b04b508bfd333b в URL-адресе, что означает, что он будет использовать этот проект только для второй страницы, чтобы отображать резюме, цитаты и имена. Мне нужен этот ajax-запрос, чтобы взять переменную для любого номера идентификатора. Однако, чтобы усугубить проблему, идентификационный номер поступает от пользователя, щелкнувшего ссылку на первой странице. Поэтому моя проблема заключается в получении значения идентификатора после щелчка ссылки и помещения его в запрос ajax для следующей страницы. У меня есть все, что сделано для отображения страниц, но я не могу получить значение из одного файла в следующий. Любая помощь приветствуется, спасибо.Использование значения, полученного из обработчика щелчка, который находится внутри запроса ajax вне функции

не позволил бы мне сохранить без выкладывания коды, так что это только голые кости,

// The ajax request is in another file but it works good 
promise.done(function (json) { 
    // Make some links 

    // Which link was clicked? I need to see some id please 
    $('#sbItems a').on('click', function (e) { 
     e.preventDefault();      

     // Do stuff to find the id for the link the user clicked 

     // Assign the id to a variable that I can use in the next ajax request 
     // that is called in a seperate file 
     testId = json.items[itemId].id; 



    }); // END Click event 

}).fail(function() { 
    alert("Ajax call failed!"); 
}); 

second file has, 

// Need to somehow, someway get the testId variable that holds the id 
// into this file 

var url = 'https://www.sciencebase.gov/catalog/item/ + THE TESTID + ?format= 
jsonp&fields=relationships,title,body,contacts';  
$.ajax({ 
    type: 'GET', 
    url: url, 
    jsonpCallback: 'getSBJSON', 
    contentType: "application/json", 
    dataType: 'jsonp', 
    complete: onComplete, 
    success: function(json) { 
     // Display some stuff based off this url 
    } 
}); 

ответ

0

Если вы пытаетесь получить номер с первой страницы и на вторую страницу при нажатии кнопки ссылка, которая принимает вас на вторую страницу, так что вы можете использовать его во второй странице АЯКС вызова, то есть несколько вариантов:

  1. Присоединить значение на URL при запросе на второй странице в качестве параметра поиска как это: http://www.sample.com/mypage?id=504216b6e4b04b508bfd333b. На второй странице проанализируйте это значение id из URL-адреса и используйте его для вашего вызова ajax. Это самый безопасный из этих трех вариантов, потому что он работает правильно, даже если пользователь имеет несколько окон, открывающих клики на разных страницах вашего сайта.

  2. При нажатии на ссылку на первой странице сохраните значение id как файл cookie. На второй странице извлеките идентификатор из файла cookie.

  3. То же, что и опция 2, но сохраняет значение в локальном хранилище.

+0

это отличная идея, но я все еще немного смущен. Поэтому, когда я запрашиваю вторую страницу, я просто использую html-файл для отображения второй страницы как window.open ('Citations.html', '_self'); – jc72

+0

Когда щелкнули ссылку, я хочу открыть файл citations.html, в котором будет новый запрос ajax с новым идентификатором. – jc72

+0

@ jc72 - Затем используйте 'window.open ('Citations.html? Id = 504216b6e4b04b508bfd333b', '_self');' и проанализируйте значение id из своего собственного URL-адреса window.location.href на javascript второй страницы , – jfriend00

Смежные вопросы