Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: отправка товаров в корзину ajax jquery

Сообщения:  [1-10]   [11-16] 

 
 автор: tima2010   (25.08.2011 в 16:13)   письмо автору
 
   для: Гость   (25.08.2011 в 16:09)
 

Спасибо! +0.1% к знаниям :) запомню

  Ответить  
 
 автор: Гость   (25.08.2011 в 16:09)   письмо автору
 
   для: tima2010   (25.08.2011 в 15:31)
 

Судя по описанию у вас элемент с классом delete добавляется динамически. Как результат в момент назначения событий на него - его еще нет на странице, а потом уже вы его и добавляете. В этом случае как правило используют такую конструкцию:
$(".delete").live('click', function(){ ... 

  Ответить  
 
 автор: tima2010   (25.08.2011 в 15:31)   письмо автору
 
   для: Гость   (25.08.2011 в 12:53)
 

Большое спасибо буду учить англ )

подскажите пожалуйста почему конфликтую эти два скрипта?


$(function() {  

$("form.addtocart").submit(function(){
$.post("add.php", $(this).serialize(), function(){ 
$("#mycart").load("cart.php");
$("#info").not(':animated').fadeIn("slow").html("Добавлено").fadeOut("slow");
}); 
return false;
});  


$(".delete").click(function(){
var del = $(this).attr("id");
var line = 'del='+ del ;
$.ajax({
type: 'POST',
data: line,
url: 'del.php',
cache: false
});
$("#mycart").load("cart.php");
});

});


почему то delete не работает :( или работает если только обновить страницу...

  Ответить  
 
 автор: Гость   (25.08.2011 в 12:53)   письмо автору
 
   для: tima2010   (25.08.2011 в 12:33)
 

Сложно сказать. Попробуйте например эту - http://anton.shevchuk.name/javascript/jquery-for-beginners-ajax/ . Еще был какой-то сайт с кучей примеров, но я его найти не смог, такой в синих тонах весь с тонной примеров, наверное вы его видели)

Вообще стоит просто посмотреть что делают методы (они все по сути являются оберткой для $.ajax). И использовать их в зависимости от ситуации. А так рекомендую в случае чего обращаться к официальной документации - там как правило всегда есть и примеры и описание (знание языка в любом случае пригодится, тем более тексты там технического характера, не заумные.). Я как правило дальше их документации уже никуда и не лажу - как оказалось что там гораздо подробнее все написано, чем во всяких примерах (хотя по началу их доки я обходил стороной)

  Ответить  
 
 автор: tima2010   (25.08.2011 в 12:33)   письмо автору
 
   для: Гость   (25.08.2011 в 12:28)
 

Спасибо! то что нужно!
на последок хотел у вас спросить совета на каком сайте есть нормальный мануал AJAX JQuery с подробным мануалом на рус + примеры?

  Ответить  
 
 автор: Гость   (25.08.2011 в 12:28)   письмо автору
 
   для: tima2010   (25.08.2011 в 12:16)
 

Желательно просто блокировать возмжоность нажатия кнопки отправки более одного раза, например при первой отправки формы к кнопке submit добавляем disabled="disabled". По окончанию запроса - убираем атрибут.

Я в таких случаях добавляю к форме класс "ajax" и не даю ее повторно отправить, а текст на кнопке submit заменяю на значек аджаксовой загрузки. Ну и тут еще нужно помнить что не все запросы на сервер завершаются удачно и в случае сбоя было бы не плохо разблокировать форму)


Если говорить о первом варианте что вы привели - то можно было бы сделать к примеру так:
$("#info").not(':animated').fadeIn("slow").html("Отправлено").fadeOut("slow");
но это не решало бы реальную проблему - кучу мусорных запросов к серверу.

  Ответить  
 
 автор: tima2010   (25.08.2011 в 12:16)   письмо автору
 
   для: tima2010   (25.08.2011 в 12:05)
 

кстати а вы знаете как запретить повторное появление Fade еффекта если событие onclick нажато много раз?

пример:



<script type="text/javascript">  
$(function() {  
    $("form.addtocart").submit(function(){ 
        $.post("add.php", $(this).serialize(), function(data){ 
            
$("#info").fadeIn("slow");
$('#info').html("Отправлено");
$("#info").fadeOut("slow");

        }); 
        return false; 
    });  
});  
</script>



то есть если 10 раз нажать то 10 раз и появится :) такого быть не должно, думаю как сделать чтобы показывалось хотя бы первый и последний раз,

  Ответить  
 
 автор: tima2010   (25.08.2011 в 12:05)   письмо автору
 
   для: Гость   (25.08.2011 в 11:59)
 

Спасибо все работает!

  Ответить  
 
 автор: Гость   (25.08.2011 в 11:59)   письмо автору
 
   для: tima2010   (25.08.2011 в 11:49)
 

Вам нужно отвязаться от Id.

Я бы сделал так - всем формам добавляем класс "addtocart", js код переписываем примерно так (код не проверял):
<script type="text/javascript"> 
$(function() { 
    $("form.addtocart").submit(function(){
        $.post("add.php", $(this).serialize(), function(data){
            alert ('complite!');
        });
        return false;
    }); 
}); 
</script>


По идее после добавления у нас как раз возращается код корзины (как я понял), так что ее сразу можно обновить - alert ('complite!'); $('mycart').html(data);

  Ответить  
 
 автор: tima2010   (25.08.2011 в 11:49)   письмо автору
 
   для: Гость   (25.08.2011 в 11:47)
 

Да именно так,
есть товары которые отображаются таким видом:


<form method="POST" action="add.php"> 
Товар 1   
<input type="text" name="number" value="1" size="1" id="number" />  шт. 
<input type="hidden" name="id" value="001" id="id" />   <!-- Артикул --> 
<input type="hidden" name="product" value="Ботинки" id="product" /> <!-- Название --> 
<input type="hidden" name="price" value="100" id="price" /> <!-- Стоимость --> 
<input name="button" type="submit" value="Отправить" id="addtocart"> 
</form> 

<form method="POST" action="add.php"> 
Товар 2   
<input type="text" name="number" value="1" size="1" id="number" />  шт. 
<input type="hidden" name="id" value="002" id="id" />   <!-- Артикул --> 
<input type="hidden" name="product" value="Сандали" id="product" /> <!-- Название --> 
<input type="hidden" name="price" value="200" id="price" /> <!-- Стоимость --> 
<input name="button" type="submit" value="Отправить" id="addtocart"> 
</form> 


для первой формы товар добавляется а для второй нет, что нужно сделать чтобы и для второй формы работало добавление товара?

  Ответить  

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования