Подскажите где ошибка в коде
<script type="text/javascript">
var nomer=<?=$id?>; $(function(){ $('#plus'+nomer).submit(function(e){ e.preventDefault(); var data = $(this).serialize(); $.ajax({ type: "POST", url: "plus.php", data: data, success: function(result+nomer){ $('#result'+nomer).html(result+nomer); } }); }); }); $(function(){ $('#minus'+nomer).submit(function(e){ e.preventDefault(); var data = $(this).serialize(); $.ajax({ type: "POST", url: "minus.php", data: data, success: function(result+nomer){ $('#result'+nomer).html(result+nomer); } }); }); }); </script> <? echo'<tr class="'.$color.'"> <td class="t_title">'.$cat['name'].'</td> <td>'.$cat['characteristic'].'</td> <td> <form method="POST" action="" id="minus" style="float:right"> <input class="serle" name="test" value="'.$id.'"> <input onclick="minus()" id="result" type="submit" value=" – "> </form> <span style ="margin-left:3px" id="inc'.$id.'">'.$zamowienie[$id].'</span> шт. <form method="POST" action="" id="plus" style="float:left"> <input class="serle" name="test" value="'.$id.'"> <input onclick="plus()" id="result" type="submit" value=" + "> </form> </td> <td>'.$cat['price'].' р</td> <td class="nie_maly">2000 р</td> </tr>'; ?> <script> var inc=<?=$zamowienie[$id]?>; function minus() { inc=inc-1; if(inc>0){ inc=inc; } else{inc=0} document.getElementById("inc"+nomer).innerHTML = inc; } </script> <script> var inc=<?=$zamowienie[$id]?>; function plus() { inc=inc+1; document.getElementById("inc"+nomer).innerHTML = inc; } </script> <? } } ?> |
их тут много
var nomer=<?=$id?>; что за тип данных ? если строка то почему без кавычек? |
Богдан94,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Цитата:
|
Цитата:
Цитата:
поудаляйте success: function(result+nomer) |
Цитата:
|
не увидел цикла, но может это вам поможет
https://javascript.ru/basic/closure#...-ispolzovaniya |
Цитата:
все работает даже если в цикле один круг |
не пойму про какой вы цикл
|
Цитата:
while (($cat = mysqli_fetch_assoc($products))){
$id=$cat['id'];
$order = mysqli_query($connection, "SELECT * FROM `order` WHERE `id`=1"); //// products
$zamowienie = mysqli_fetch_assoc($order);
if($zamowienie[$id]>0){
$x++;
$y=$x%2;
if($y==1){
$color='czemny';
}else{$color='szwetly';}
echo'<tr class="'.$color.'">
<td class="t_title">'.$cat['name'].'</td>
<td>'.$cat['characteristic'].'</td>
<td>
<form method="POST" action="" id="minus'.$id.'" style="float:right">
<input class="serle" name="test" value="'.$id.'">
<input onclick="minus()" id="result'.$id.'" type="submit" value=" – ">
</form>
<span style ="margin-left:3px" id="inc'.$id.'">'.$zamowienie[$id].'</span> шт.
<form method="POST" action="" id="plus'.$id.'" style="float:left">
<input class="serle" name="test" value="'.$id.'">
<input onclick="plus()" id="result'.$id.'" type="submit" value=" + ">
</form>
</td>
<td>'.$cat['price'].' р</td>
<td class="nie_maly"><span id="summ'.$id.'">'.$zamowienie[$id]*$cat['price'].'</span> р</td>
</tr>';
?>
<script type="text/javascript">
var id="<?=$id?>";
var plus_ = '#plus'+id;
var minus_ = '#minus'+id;
var result_ = 'result'+id;
$(function(){
$(plus_).submit(function(e){
e.preventDefault();
var data = $(this).serialize();
$.ajax({
type: "POST",
url: "plus.php",
data: data,
success: function(result_){
$(result_).html(result_);
}
});
});
});
$(function(){
$(minus_).submit(function(e){
e.preventDefault();
var data = $(this).serialize();
$.ajax({
type: "POST",
url: "minus.php",
data: data,
success: function(result_){
$(result_).html(result_);
}
});
});
});
</script>
<script>
var inc_ ='inc'+id;
var summ_ ='summ'+id;
var inc=<?=$zamowienie[$id]?>; // ilosc towaru
var kosz=<?=$cat['price']?>; // cena towaru
function minus() {
inc=inc-1;
if(inc>0){
inc=inc;
}
else{inc=0;}
document.getElementById(inc_).innerHTML = inc;
var sum=inc*kosz;
document.getElementById(summ_).innerHTML = sum;
}
function plus() {
inc=inc+1;
document.getElementById(inc_).innerHTML = inc;
var sum=inc*kosz;
document.getElementById(summ_).innerHTML = sum;
}
</script>
цикл while |
вот такая таблица если в цикле один оборот то все работает если два и более то работает только последний и то не корректно. |
Там где в цикле выводится таблица замените вывод таблицы на
echo '
<tr class="'.$color.'">
<td class="t_title">'.$cat['name'].'</td>
<td>'.$cat['characteristic'].'</td>
<td>
<form method="POST" onsubmit="" id="minus'.$id.'" style="float:right">
<input class="serle" name="test" value="'.$id.'">
<input onclick="minus(\'inc'.$id.'\', \'summ'.$id.'\', '.$zamowienie[$id].', '.$cat['price'].')" id="result'.$id.'" type="submit" value=" – ">
</form>
<script>registerSubmitForm("#minus'.$id.'", "#result'.$id.'", "minus.php");</script>
<span style ="margin-left:3px" id="inc'.$id.'">'.$zamowienie[$id].'</span> шт.
<form method="POST" id="plus'.$id.'" style="float:left">
<input class="serle" name="test" value="'.$id.'">
<input onclick="plus(\'inc'.$id.'\', \'summ'.$id.'\', '.$zamowienie[$id].', '.$cat['price'].')" id="result'.$id.'" type="submit" value=" + ">
</form>
<script>registerSubmitForm("#plus'.$id.'", "#result'.$id.'", "plus.php");</script>
</td>
<td>'.$cat['price'].' р</td>
<td class="nie_maly"><span id="summ'.$id.'">'.$zamowienie[$id]*$cat['price'].'</span> р</td>
</tr>
';
там где идут скрипты JavaScript в цикле, удалите их оттуда и ВНЕ цикла на странице укажите это (ПЕРЕД циклом)
<script type="text/javascript">
function registerSubmitForm(formSelector, resultSelector, url) {
$(formSelector).submit(function(e) {
e.preventDefault();
var data = $(this).serialize();
$.ajax({
type: "POST",
url: url,
data: data,
success: function(result) {
$(resultSelector).html(result);
}
});
});
}
function minus(inc_, summ_, inc, kosz) {
inc = inc - 1;
if (inc > 0) {
inc = inc;
} else {
inc = 0;
}
document.getElementById(inc_).innerHTML = inc;
var sum = inc * kosz;
document.getElementById(summ_).innerHTML = sum;
}
function plus(inc_, summ_, inc, kosz) {
inc = inc + 1;
document.getElementById(inc_).innerHTML = inc;
var sum = inc * kosz;
document.getElementById(summ_).innerHTML = sum;
}
</script>
|
Цитата:
|
Цитата:
echo '
<tr class="'.$color.'">
<td class="t_title">'.$cat['name'].'</td>
<td>'.$cat['characteristic'].'</td>
<td>
<form method="POST" onsubmit="" id="minus'.$id.'" style="float:right">
<input class="serle" name="test" value="'.$id.'">
<input onclick="minusOrPlus(\''.$id.'\', '.$cat['price'].', -1)" data-inc="'.$zamowienie[$id].'" class="result'.$id.'" type="submit" value=" – ">
</form>
<script>registerSubmitForm("#minus'.$id.'", "#result'.$id.'", "minus.php");</script>
<span style ="margin-left:3px" id="inc'.$id.'">'.$zamowienie[$id].'</span> шт.
<form method="POST" id="plus'.$id.'" style="float:left">
<input class="serle" name="test" value="'.$id.'">
<input onclick="minusOrPlus(\''.$id.'\', '.$cat['price'].', 1)" data-inc="'.$zamowienie[$id].'" class="result'.$id.'" type="submit" value=" + ">
</form>
<script>registerSubmitForm("#plus'.$id.'", "#result'.$id.'", "plus.php");</script>
</td>
<td>'.$cat['price'].' р</td>
<td class="nie_maly"><span id="summ'.$id.'">'.$zamowienie[$id]*$cat['price'].'</span> р</td>
</tr>
';
<script type="text/javascript">
function registerSubmitForm(formSelector, resultSelector, url) {
$(formSelector).submit(function(e) {
e.preventDefault();
var data = $(this).serialize();
$.ajax({
type: "POST",
url: url,
data: data,
success: function(result) {
$(resultSelector).html(result);
}
});
});
}
function minusOrPlus(id, kosz, amount) {
var inc = +$(".result" + id).data("inc");
inc = Math.max(0, inc + amount);
document.getElementById("inc" + id).innerHTML = inc;
var sum = inc * kosz;
document.getElementById("summ" + id).innerHTML = sum;
$(".result" + id).data("inc", inc);
}
</script>
|
Цитата:
|
| Часовой пояс GMT +3, время: 17:08. |