Jump to content
  • 0

Проблемы с методом .GET


maliyshock
 Share

Question

Задача, по клику, на ссылку, отправлять запрос с данными к определённой странице.

Наковырял краткое синтаксическое описание как это работает:

$.get("test.php", { name: "John", time: "2pm" } );

Где test.php - адрес страницы, а в скобках идёт объявление переменных.

Как сделал я: 

$('.submit').click(function()                                   {                                       $.get("/korzina", { name: "John", time: "2pm" } );                                   });

Надо сказать, что делал я на WP. Поэтому адрес записан как /korzina, т.к. это адрес страницы в wp.
При распечатывании массива GET функцией var_damp - выдаёт пустой массив.

Почему массив пустой? Почему данные не передаются? Или я что-то не так понял?

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Попробуйте перейти по ссылке ваш домен/korzina?name=John&time=2pm. Если массив $_GET пустой - разбирайтесь с WP. Если данные в массиве есть - проблема с JQuery, смотрите урл по которому идет HXR(в этом поможет FireFox и FireBug).

Link to comment
Share on other sites

  • 0

CoDy

Спасибо. Да, действительно данные отправляются по адресу /korzina?name=John&time=2pm. На этой странице массив не пустой и выводит переданные значения. Однако почему так происходит я пока всё же не понимаю. Ну т.е. я понимаю, что параметры передаются, но почему через урл, который  формируется на ходу? 

Или же я выбрал не тот способ для передачи данных на страницу?

Link to comment
Share on other sites

  • 0

http://jazz-i-lopata.ru/

Я пробую делать корзину. Первые шаги.

Дело в том, что я пока начинаю изучать php, а с js вот только знакомлюсь. Каша в голове та ещё.

Задача, чтобы по клику по ссылке "добавить в карзину", происходила отправка данных на страницу http://jazz-i-lopata.ru/korzina, без перезагрузки страницы. 
Соответственно. Там уже идёт вывод таблицы со всеми товарами, подсчёт количества товаров и общей цены. Думаю вывести это всё потом плавающим выдвижным блоком, но это уже косметическое.

Потом нужно будет дописать функции удаления товаров и функцию отправки данных на почту. Но это уже потом. Сейчас я застрял с этим js и аяксом.

Edited by maliyshock
Link to comment
Share on other sites

  • 0

Не, там суть была в другом. Я не записывал значения во что либо. Т.е. значения передавались, а запись значений не происходила соответственно и выводить было нечего.

Сейчас встрял с другим. С простой передачей параметров с объявлением я разобрался 
 

$.get("/korzina", { name: "John", time: "2pm" } );


Но если нужно передать переменную? Предположительно для неё тоже нужен ключ и значение, я сделал так
 

$.post("/korzina", {data: id} );

Где var id объявляется чуть ранее и принимает различные значения.

На принимающей стороне, на странице к которой осуществляется запрос  стоит следующее

if (isset($_POST['data'])) {$id = $_POST['data'];echo "<br/>";echo $id;}

Однако переменная не выводится, соответственно такого ключа в массиве POST нет. Почему? Я опять что-то не так делаю?

Edited by maliyshock
Link to comment
Share on other sites

  • 0

я у себя корзину реализовывал в корне по другому (может чем-то поможет):

$(document).ready(function() {    $(".addtocart").click(function () {        var ProductId = 'productid='+$(this).attr('rel');		var CountProduct = "count_product="+ $(".count_product_"+$(this).attr('rel')).val();		var ProductPrice = "product_price="+ $(".product_price"+$(this).attr('rel')).val();        jQuery.ajax({            type: "POST",            url: "http://angrybubbles.ru/order/addtocart.php",            dataType:"HTML",            data:ProductId+'&'+CountProduct+'&'+ProductPrice,            success:function(response){			a=$(response);            $(".cart").html(a);		},            error:function (xhr, ajaxOptions, thrownError){                alert(thrownError);            }        });		return false;	});	    $("body").on("click", ".cart .deltocart", function() {        var ProductId = 'productid='+$(this).attr('rel');		var CountProduct = $($(this).attr('rel')).val();        jQuery.ajax({            type: "POST",            url: "http://angrybubbles.ru/order/deltocart.php",            dataType:"HTML",            data:ProductId+'&'+CountProduct,            success:function(response){			a=$(response);            $(".cart").html(a);			$('span.hide').fadeOut(3000);		},            error:function (xhr, ajaxOptions, thrownError){                alert(thrownError);            }        });		return false;	});	    $("body").on("click", ".cart .order_click", function() {        var ProductId = 'productid='+$(this).attr('rel');		var CountProduct = $($(this).attr('rel')).val();        jQuery.ajax({            type: "POST",            url: "http://angrybubbles.ru/order/order.php",            dataType:"HTML",            data:ProductId+'&'+CountProduct,            success:function(response){			a=$(response);            $(".cart").html(a);			$('.overlay').show(1000);			$('.order').show(1000);			$('.close').click(function() {				$('.overlay, .order').hide(1000);			});			},            error:function (xhr, ajaxOptions, thrownError){                alert(thrownError);            }        });		return false;	});	});

из кода видно, что всего получается три ф-ции:

1) добавление в корзину - addtocart

2) удаление из корзины - deltocart

3) и переход к оформлению заказа - order_click

как работает можете подсмотреть на сайте: http://angrybubbles.ru

p.s. в коде как раз та самая проблема, которую я озвучил ранее и которую поборол только прописыванием абсолютного пути

Link to comment
Share on other sites

  • 0

Спасибо, я поробую в этом разобраться. Хотя ваш код мне кажется сложным для моего понимания =)

Проблема была в отсутствии этой штуки $(document).ready(function()
Понять бы зачем она нужна вообще)

Link to comment
Share on other sites

  • 0
$(document).ready(function(){   // Действия, которые нужно сделать после ПОЛНОЙ загрузки документа.   alert('Документ полностью подгрузился: построена объектная модель документа, подгружены все скрипты');});

Так иногда  прописывают JS-скрипты, которые нужно запустить после загрузке документа.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy