AJAX.Выполнение нескольких действий - Visavi.net
https://visavi.net/
RSS - Visavi.nethttps://visavi.net/assets/img/images/logo_small.pngRSS - Visavi.net
https://visavi.net/
[email protected] (admin)[email protected] (admin)Thu, 28 Nov 2024 01:27:55 +0300html<br>
<pre class="prettyprint"><button class="shop" name="'.$i.'" value="заказать" /></pre>
js<br>
<pre class="prettyprint">
$(document).ready(function(){
$(".shop").click(function(){
var shopID = $(this).attr("name");
/* тут отправка и алерт, shopID - ид товара (переменная $i в цикле */
});
});
</pre>
на скорую руку
https://visavi.net/topics/27003/454099
AJAX.Выполнение нескольких действий ramzesThu, 01 Dec 2011 22:20:02 +0400Сообщенияhttps://visavi.net/topics/27003/45409913. <strong>dima.london</strong>, можно проще, без явного вызова функции, мегабит прав
https://visavi.net/topics/27003/453915
AJAX.Выполнение нескольких действий ramzesThu, 01 Dec 2011 16:41:01 +0400Сообщенияhttps://visavi.net/topics/27003/45391512. <strong>ramzes</strong>, я в <strong>5</strong> посте набросал вполне работоспособный скрипт. Еще и кнопочки в css отрисовал.
https://visavi.net/topics/27003/453901
AJAX.Выполнение нескольких действий ДмитрийThu, 01 Dec 2011 16:22:05 +0400Сообщенияhttps://visavi.net/topics/27003/453901<blockquote class="blockquote"><strong>dima.london</strong> (1 Декабря 2011 / 13:56)<br>
8. <strong>megabit</strong>, категорически не согласен. <br>
Обрати внимание на начало JS. Я даже закомментирую:<br>
<pre class="prettyprint">
$(function() {
// id - это содержимое поля input с id="id"
var id = $("input#id").val();
// при клике по блоку с class=".button_ID"......
$(".button_"+id+"").click(function() {</pre>
А теперь взглянем на html<br>
<input type="hidden" name="id" id="id" value="'.$i.'" class="text-input" /> <br>
<input type="submit" name="submit" class="button_'.$i.'" id="submit_btn" value="В корзину" /><br>
Алгоритм изначально неверный. Во всех полях name="id" одинаковый id="id", который и передает первое значение из цикла, а class="submit_btn" тут вообще не при чем, и я подрзреваю, что он просто задает стиль кнопки. В любом случае в JS всегда будет передаваться команда на срабатывание события для блока .button_1, не зависимо от того, по какому блоку был клик.<br>
<br>
Блин, я Капитан Очевидность, кэп.</blockquote>
Если это в цикле то как минимум кривой хтмл будет и не рабочий js, будет реагировать всегда на первую позицию, не зависимо от того какую выбрали на самом деле
https://visavi.net/topics/27003/453899
AJAX.Выполнение нескольких действий ramzesThu, 01 Dec 2011 16:15:27 +0400Сообщенияhttps://visavi.net/topics/27003/453899Понятно.Ладно, спасибо за помощь парни!<img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile">
https://visavi.net/topics/27003/453875
AJAX.Выполнение нескольких действий АлександрThu, 01 Dec 2011 15:46:09 +0400Сообщенияhttps://visavi.net/topics/27003/4538759. <strong>dima.london</strong>, слишком много букв, да я даже толком не читал посты тут <img src="https://visavi.net/uploads/stickers/D.gif" alt="D"> <br>
согласен что подход изначальной не верный
https://visavi.net/topics/27003/453812
AJAX.Выполнение нескольких действий АлексейThu, 01 Dec 2011 13:58:45 +0400Сообщенияhttps://visavi.net/topics/27003/4538128. <strong>megabit</strong>, категорически не согласен. <br>
Обрати внимание на начало JS. Я даже закомментирую:<br>
<pre class="prettyprint">
$(function() {
// id - это содержимое поля input с id="id"
var id = $("input#id").val();
// при клике по блоку с class=".button_ID"......
$(".button_"+id+"").click(function() {</pre>
А теперь взглянем на html<br>
<input type="hidden" name="id" id="id" value="'.$i.'" class="text-input" /> <br>
<input type="submit" name="submit" class="button_'.$i.'" id="submit_btn" value="В корзину" /><br>
Алгоритм изначально неверный. Во всех полях name="id" одинаковый id="id", который и передает первое значение из цикла, а class="submit_btn" тут вообще не при чем, и я подрзреваю, что он просто задает стиль кнопки. В любом случае в JS всегда будет передаваться команда на срабатывание события для блока .button_1, не зависимо от того, по какому блоку был клик.<br>
<br>
Блин, я Капитан Очевидность, кэп.
https://visavi.net/topics/27003/453811
AJAX.Выполнение нескольких действий ДмитрийThu, 01 Dec 2011 13:56:18 +0400Сообщенияhttps://visavi.net/topics/27003/4538117. <strong>dima.london</strong>, ну ты все же что то написал<br>
а проблема в том что id на странице один вот и добавлял только один товар <br>
<blockquote class="blockquote"><br>
class="button_'.$i.'" id="submit_btn"<br>
</blockquote>
обрабатывалась только одна кнопка submit_btn и button_0<br>
достаточно изменить так<br>
<blockquote class="blockquote"><br>
id="button_'.$i.'" class="submit_btn"<br>
</blockquote>
<pre class="prettyprint">
$('.submit_btn').onclick(..);
</pre>
https://visavi.net/topics/27003/453738
AJAX.Выполнение нескольких действий АлексейThu, 01 Dec 2011 12:46:28 +0400Сообщенияhttps://visavi.net/topics/27003/453738<blockquote class="blockquote"><strong>megabit</strong> (1 Декабря 2011 / 09:19)<br>
Незря наверно люди придумали обработку событий <img src="https://visavi.net/uploads/stickers/xmm.gif" alt="xmm"> </blockquote>
Читай внимательно первый пост. Какая была задача? Или мне надо было полностью скрипт ему написать? С обработкое repsone, парсингом и занесением в куки и БД? Ага.<br>
<br>
<em><span style="font-size:x-small">Добавлено через 01:44 сек.</span></em><br>
возьми и напиши, чо <img src="https://visavi.net/uploads/stickers/xmm.gif" alt="xmm">
https://visavi.net/topics/27003/453717
AJAX.Выполнение нескольких действий ДмитрийThu, 01 Dec 2011 12:31:01 +0400Сообщенияhttps://visavi.net/topics/27003/453717<blockquote class="blockquote"><strong>dima.london</strong> (1 Декабря 2011 / 09:14)<br>
Пример посложнее, с красотой и проверкой на вшивость.<br>
<pre class="prettyprint"><style>
.t_cont{
height:30px;
line-height:30px;
padding-left:10px;
border-bottom: 1px solid #222;
margin:0 0 5px 5px;
padding:0 0 5px 5px;
}
.t_name{
float: left;
width:100px;
height:30px;
line-height:30px;
margin-left:10px;
}
.t_submit{
float: left;
width:150px;
height:30px;
line-height:30px;
color:#fff;
background-color:green;
cursor:pointer;
font-weight:700;
text-align:center;
}
</style>
<script type="text/javascript">
function click_button(id) {
var rep = $('div#submit_' + id).text();
if (rep != 'Добавлено')
{
/* тут код добавления в корзину */
$('div#submit_' + id).css('backgroundColor', 'red');
$('div#submit_' + id).text('Добавлено');
alert('Товар № ' + id + ' успешно куплен');
} else {
alert('Мы не продаем один и тот же товар 2 раза');
}
};
</script>
<?php
$i=0;
while ($i++<5)
{
$repsone = '<div class="t_cont">';
$repsone.= '<div class="t_name">Товар № ' . $i . '</div>';
$repsone.= '<div class="t_submit" id="submit_' . $i . '" onclick="click_button(' . $i . ');">В корзину</div>';
$repsone.= '</div>';
echo $repsone;
}
?></pre></blockquote>
Незря наверно люди придумали обработку событий <img src="https://visavi.net/uploads/stickers/xmm.gif" alt="xmm">
https://visavi.net/topics/27003/453665
AJAX.Выполнение нескольких действий АлексейThu, 01 Dec 2011 10:19:46 +0400Сообщенияhttps://visavi.net/topics/27003/453665Пример посложнее, с красотой и проверкой на вшивость.<br>
<pre class="prettyprint"><style>
.t_cont{
height:30px;
line-height:30px;
padding-left:10px;
border-bottom: 1px solid #222;
margin:0 0 5px 5px;
padding:0 0 5px 5px;
}
.t_name{
float: left;
width:100px;
height:30px;
line-height:30px;
margin-left:10px;
}
.t_submit{
float: left;
width:150px;
height:30px;
line-height:30px;
color:#fff;
background-color:green;
cursor:pointer;
font-weight:700;
text-align:center;
}
</style>
<script type="text/javascript">
function click_button(id) {
var rep = $('div#submit_' + id).text();
if (rep != 'Добавлено')
{
/* тут код добавления в корзину */
$('div#submit_' + id).css('backgroundColor', 'red');
$('div#submit_' + id).text('Добавлено');
alert('Товар № ' + id + ' успешно куплен');
} else {
alert('Мы не продаем один и тот же товар 2 раза');
}
};
</script>
<?php
$i=0;
while ($i++<5)
{
$repsone = '<div class="t_cont">';
$repsone.= '<div class="t_name">Товар № ' . $i . '</div>';
$repsone.= '<div class="t_submit" id="submit_' . $i . '" onclick="click_button(' . $i . ');">В корзину</div>';
$repsone.= '</div>';
echo $repsone;
}
?></pre>
https://visavi.net/topics/27003/453649
AJAX.Выполнение нескольких действий ДмитрийThu, 01 Dec 2011 09:14:02 +0400Сообщенияhttps://visavi.net/topics/27003/4536493. <strong>PR0Z0N</strong>, облегченный вариант<br>
<pre class="prettyprint"><script type="text/javascript">
function click_button(id) {
alert('Товар № ' + id);
};
</script>
<?php
$i=0;
while ($i++<5)
{
$repsone = 'Товар № ' . $i;
$repsone.= ' &nbsp; <input type="submit" onclick="click_button(' . $i . ')" value="В корзину" />';
echo '<p>' . $repsone . '</p>';
}
?></pre>
https://visavi.net/topics/27003/453640
AJAX.Выполнение нескольких действий ДмитрийThu, 01 Dec 2011 08:41:00 +0400Сообщенияhttps://visavi.net/topics/27003/4536402. <strong>dima.london</strong>, спасибо за подсказку, но че то так работать не хочет...
https://visavi.net/topics/27003/453634
AJAX.Выполнение нескольких действий АлександрThu, 01 Dec 2011 08:23:35 +0400Сообщенияhttps://visavi.net/topics/27003/453634Вместо <br>
<pre class="prettyprint"> var id = $("input#id").val();
$(".button_"+id+"").click(function() {</pre>
попробуй<br>
<pre class="prettyprint"> function click_button(id) {</pre>
тогда кнопки будут такие<br>
<pre class="prettyprint"><input type="submit" name="submit" class="button_' . $i . '" onclick="click_button(' . $i . ')" id="submit_btn" value="В корзину" />
</pre>
Короче, алгоритм такой. Вообще убери поле hidden, создай ф-ю click_button(), передавай в нее ID товара, и на onclick кнопки повесь эту ф-ю.
https://visavi.net/topics/27003/453615
AJAX.Выполнение нескольких действий ДмитрийThu, 01 Dec 2011 05:20:02 +0400Сообщенияhttps://visavi.net/topics/27003/453615Всем доброй ночи!Есть такой скрипт, который добавляет допустим какой либо Товар в корзину , без обновления страницы (пример <a href="http://upwap.ru/d/1865412/279a308add04d4803fdf88004ed6908a/1.png" target="_blank" rel="nofollow"> 1 </a>, <a href="http://upwap.ru/d/1865422/54217e2d0052f47a798015004ed692ab/2.png" target="_blank" rel="nofollow"> 2</a>).Но проблема в том что он добавляет только один товар, который самый первый, остальные кнопки не работают, а надо чтобы была возможность добавить все товары.Ajax я только изучаю, весь вечер вожусь, не могу разобраться.Пробывал использовать циклы в ajax, не помогает, видимо не так делал.Вот собственно сам код:<br>
<pre class="prettyprint">
...
<script src="jquery-1.2.3.pack.js"></script>
<script type="text/javascript">
$(function() {
var id = $("input#id").val();
$(".button_"+id+"").click(function() {
var dataString = 'id='+ id;
$.ajax({
type: "POST",
url: "data.php",
data: dataString,
success: function() {
$('#test_form_'+id+'').html("<div id='message'></div>");
$('#message').html("Товар №"+id+" добавлен")
.hide()
.fadeIn(1200, function() {
}); }
});
return false;
});
});
</script>
</head><body>
<?php
$i=0;
while ($i++<5)
{
echo '<div id="test_form_'.$i.'"><form name="contact" action="">Товар № '.$i.'
<input type="hidden" name="id" id="id" value="'.$i.'" class="text-input" />
<input type="submit" name="submit" class="button_'.$i.'" id="submit_btn" value="В корзину" /></form></div><br/>';
}
?>
...
</pre>
Подскажите пожалуйста как правильно сделать?
https://visavi.net/topics/27003/453510
AJAX.Выполнение нескольких действий АлександрThu, 01 Dec 2011 00:42:13 +0400Сообщенияhttps://visavi.net/topics/27003/453510