Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Передаются параметры только из одной формы в скрипт Jquery / 3 сообщений из 3, страница 1 из 1
09.02.2013, 12:46
    #38144335
Keilman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передаются параметры только из одной формы в скрипт Jquery
Здравствуйте Уважаемые программисты!

Есть проблема.
Суть такая:

Выводится список товаров циклом WHILE из базы, на странице штук 20 товаров
в каждом есть скрытые поля input для последующей передачи параметров в корзину товаров, так вот сами понимает что циклом вывели и соответственно эта форма и inputы у нее имеют одинаковые названия во всех товарах, только параметры товара разные и соответсвуют товару, смотрим код:

[PHP]...while($new_tovar = mysql_fetch_assoc($sql_new_tovar))
{
echo ' <span id="block_korzina">
<form action="'.$site.$_SERVER['REQUEST_URI'].'" method="post" id="form_insert_korzina">
<input type="hidden" name="korz_user_id" value="'.$_SESSION['user_id'].'" />
<input type="hidden" name="korz_name_tov" value="'.$new_tovar['ctov'].'" />
<input type="hidden" name="korz_kod_tov" value="'.$new_tovar['skod'].'" />
<input type="hidden" name="korz_cena" value="';
<input type="image" name="go_cart" src="'.$site.$shop.'images/go_cart.png" width="30" height="31" id="go_cart" title="Добавить в корзину" />
<input type="hidden" name="korz_date_added" value="'.$date_real.' '.$time_real.'" />
<input type="hidden" name="korz_status" value="0" />
<input type="hidden" name="insert_korzina" value="form_insert_korzina" />
</form>
</span>';
}
... и еще двадцать таких форм ...[/PHP]

так вот как сделать чтобы скрипт Jquery c Ajax указанный ниже принимал параметры соответствующие товару при клике на кнопку "добавить в корзину", а то он принимает параметры только от первого по списку товара, а если кликать на кнопку по другим товарам он все равно принимает значения из первого товара на странице.
Т. е. мне не нужно объяснять как передать параметры, это я знаю, а как сделать чтобы скрипт отличал формы в товарах и принимал параметры от соответствующей формы товара?

Вот скрипт Jquery:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<script language="javascript" type="text/javascript">
$(document).ready(function()
{
	$("form#vhod").submit(function()
	{
		$.ajax(
		{
			type: "POST",
			url: "pages/switch.php?check_autorise_options=options_success",
			data:
			{
				user_login:$('input#login').val(),
				user_parol:$('input#parol').val()
			},
			success: function(html)
		{
			$("div#autorise").html(html);
		}
	});
	return false;
	});
});
</script>


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

Сразу говорю, пробовал это - <input type="hidden" name="korz_kod_tov[]" value="'.$new_tovar['skod'].'" />

т. е. добавлял к name квадратные скобки, но скрипт Jquery обращается только по классу или по id елемента.

также пробовал через функцию serialise()
вот так:


[PHP]data: $(#form_insert_korzina).serialise(),[/PHP]

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

В ajax и jquery я вообще не силен, поэтому прошу помочь и объяснить почему так. Вернее я понимаю что не соответствуют ключи выбранным элементам, но как это правильно написать и сделать не пойму, уже все перепробовал...

Прошу помощи!
...
Рейтинг: 0 / 0
09.02.2013, 14:26
    #38144392
uvlad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передаются параметры только из одной формы в скрипт Jquery
Если я правильно понял, то у вас 20 форм, каждая из которых описывает один товар. Вы хотите по клику на форму, через AJAX отправлять данные на сервер ? При клике на любую форму данные отправляются только с первой формы ?

По кускам приведенного вами кода, не совсем понятно, на каком элементы вы пытаетесь вызвать событие "Submit".

Код: javascript
1.
$("form#vhod").submit(function()...

а в PHP формы с товарами создаются с id="form_insert_korzina"

Если это одна из форм, то проблема в уникальности элементов, по PHP коду видно что все ваши формы с одинаковым ID, что уже не допустимо.

Не используйте к формам ID, добавьте class.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
jQuery('.items').submit(function() {
        var that = $(this); // обращаться вам надо к элементам конкретной формы

        $.ajax({
                ...
                'data': {
                        user_login: that.find('#login').val()
                }
        });
});



Что-то вроде этого
...
Рейтинг: 0 / 0
09.02.2013, 14:46
    #38144406
Keilman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передаются параметры только из одной формы в скрипт Jquery
uvladПо кускам приведенного вами кода, не совсем понятно, на каком элементы вы пытаетесь вызвать событие "Submit".


Спасибо за отклик Uvlad!

Да вы почти как экстрасенс все поняли, при том что я еще код Jquery Ajax не тот привел!

Да формы создаются циклом одинаковые они в товаре со скрытыми полями. По поводу id разобрался, понял что нельзя одинаковый id использовать для всех форм, применял классы, но все равно параметры только из первой формы товара передавались.
А вот то что Вы написали, наверное как раз то решение.

Проверю отпишусь!
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Передаются параметры только из одной формы в скрипт Jquery / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]