Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 16.01.2019, 13:21
Интересующийся
Отправить личное сообщение для Богдан94 Посмотреть профиль Найти все сообщения от Богдан94
 
Регистрация: 10.11.2018
Сообщений: 22


вот такая таблица если в цикле один оборот то все работает если два и более то работает только последний и то не корректно.
Ответить с цитированием
  #12 (permalink)  
Старый 16.01.2019, 14:46
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Там где в цикле выводится таблица замените вывод таблицы на
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>

Последний раз редактировалось Malleys, 16.01.2019 в 14:54.
Ответить с цитированием
  #13 (permalink)  
Старый 16.01.2019, 15:17
Интересующийся
Отправить личное сообщение для Богдан94 Посмотреть профиль Найти все сообщения от Богдан94
 
Регистрация: 10.11.2018
Сообщений: 22

Сообщение от Malleys
там где идут скрипты JavaScript в цикле, удалите их оттуда и ВНЕ цикла на странице укажите это (ПЕРЕД циклом)
JS стал работать во всех строчках но не правильно, во первых скрипт по увеличению или уменьшению числа на 1 не срабатывает более одного раза подряд, во вторых если изначально число было 20 то нажав на + получим 21 а затем нажав - получим 19.
Ответить с цитированием
  #14 (permalink)  
Старый 16.01.2019, 15:20
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от Богдан94
JS стал работать во всех строчках но не правильно, во первых скрипт по увеличению или уменьшению числа на 1 не срабатывает более одного раза подряд, во вторых если изначально число было 20 то нажав на + получим 21 а затем нажав - получим 19.
Да, да, да, я тоже заметил, уже исправил!

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>
Ответить с цитированием
  #15 (permalink)  
Старый 16.01.2019, 15:35
Интересующийся
Отправить личное сообщение для Богдан94 Посмотреть профиль Найти все сообщения от Богдан94
 
Регистрация: 10.11.2018
Сообщений: 22

Сообщение от Malleys
Да, да, да, я тоже заметил, уже исправил!
Огромное Вам спасибо!! Очень выручили...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу подключить скрипт — где ошибка? gadertes Общие вопросы Javascript 10 14.03.2018 16:08
Ошибка с addEventListener на страницах, где нет элемента с id TibiTotoro Общие вопросы Javascript 4 02.03.2018 19:27
Подскажите в чём ошибка. dima*** Общие вопросы Javascript 5 16.04.2013 08:22
Подскажите, где ошибка? Вып. меню allasan Элементы интерфейса 2 13.03.2012 01:36
Где ошибка? gogi Общие вопросы Javascript 8 04.02.2009 12:21