#php #jquery #html #ajax #json
#php #jquery #HTML #ajax #json
Вопрос:
Я пытаюсь создать простую форму с одним текстовым полем и кнопкой отправки, которая при нажатии отправляет значение в метод $.getJSON, который извлекает ответ JSON и выводит его на веб-страницу.
Могу ли я в любом случае сделать это динамически, используя AJAX и PHP? Нужно ли мне использовать метод $ .ajax для отправки значения на страницу PHP или я могу просто изменить существующий метод.
$.getJSON(
"https://www.googleapis.com/shopping/search/v1/public/products?callback=?",
{
key: "keyhere",
country: "US",
q: searchterm,
alt: "json"
},
function(data) {
$.each(data.items, function(i, item){
if (item.product.images.length > 0) // sanity check
{
//global variables
var link = item.product.images[0]['link'];
var title = item.product.title;
var listData = "<li>" title "</li>" '<img title="' title '" src="' link '" />';
$('#lists').append(listData);
var img = $("<img/>").attr("src", link);
$("<a/>").attr({href: link, title: "image title"}).append(img).appendTo("#images");
console.log(data)
}
});
}
);
Редактировать:
Благодаря SBerg413 мне удалось изменить метод на .ajax, и он отлично работает, рабочий пример ниже:
var apiKey = "key";
var country = "US";
var apiurl = "https://www.googleapis.com/shopping/search/v1/public/products?callback=?";
var search = 'starwars';
$.ajax({
url: apiurl,
dataType: 'jsonp',
data :
{
key: apiKey,
country: country,
q: search,
},
success: function(data) {
$.each(data.items, function(i, item){
if (item.product.images.length > 0) // sanity check
{
//global variables
var link = item.product.images[0]['link'];
var title = item.product.title;
var listData = "<li>" title "</li>" '<img title="' title '" src="' link '" />';
$('#lists').append(listData);
var img = $("<img/>").attr("src", link);
$("<a/>").attr({href: link, title: "Courtesy of James"}).append(img).appendTo("#images");
console.log(data)
}
});
// console.log(data);
console.log(data)
}
});
Комментарии:
1. То, что вы хотите сделать, легко возможно. Мне просто интересно, с какой конкретной проблемой вы столкнулись с этим?
Ответ №1:
Метод jQuery getJSON — это просто сокращение для метода ajax(). http://api.jquery.com/jQuery.getJSON / Итак, вы должны быть в состоянии использовать либо то, либо другое. Однако метод getJSON использует GET . Итак, если вы конкретно хотите использовать POST, вам лучше использовать метод ajax() .
Комментарии:
1. Или метод post(), который также является сокращением для ajax()
2. Спасибо. Могу ли я по-прежнему добавлять параметры key, country и searchterm в метод ajax()?
3. Абсолютно. Вы собираетесь сделать это так же, как вы делаете это сейчас. Посмотрите на первый пример в документации, где говорится «данные: данные». Вот куда вы помещаете свой.