Форум

Навигация Форума
Вы должны войти, чтобы создавать сообщения и темы.

Ошибка события JavaScript (Ошибка события JavaScript)

ПС
Коды которые в тексте написаны правильно и если где то кажется что не правильно типо пропустил знак > /" и т.д. то знайте защита сайта от взлома их переконвертировала!

Есть код вывода стоимости теста:

<tr id="add<?=$t["id"];?>"&g

t;
<form action="test.php" method="post">
<input id="money_<?=$t["id"]?>"

type="hidden" value="10">
<input type="text" name="plan" id="plan_<?=$t["id"];?>"

maxlength="6" size="4" value="2" onchange="many(<?=$t["id"];

?>);" onkeyup="many(<?=$t["id"];?

>);" autocomplete="off">
Стоимость заказа: <span id="price_<?=$t["id"];?>&quot
;
;;></span>
<input class="button-red" type="submit" title="Внести средства в бюджет площадки" value="Оплатить">
</form></tr>
<script>many(<?=$t["id"];?>)

;</script>


Скрипт события :

function many(id) {
var price = document.getElementById('money_'+id).val

ue*1,
plan = document.getElementById('plan_'+id).valu

e;
$('#price_'+id).html((Math.round((price*

plan)*10000)/10000) + ' руб.');
}


Когда заходишь на страницу пополнения теста стоимость теста показывает правильно и это 20 руб.
При нажатии на кнопку "Оплатить" я передаю запрос через POST, но ответ на действия передаю через json_encode:
Сокращенно без проверок:

$plan= $_POST["plan"];
$sum = $plan*10;
$mysqli->query("UPDATE `tb_users` SET `money_cr` = `money_cr` - '".$sum."' WHERE `username`='$username' ");
//Ответ на действие пользователя(изменения баланса) без перезагрузки страницы и запуск функции many() что бы опять видеть стоимость
$suc .= "$('#add$id').load('test.php #add$id');many($id);";

echo json_encode(array('suc' => iconv("UTF-8","UTF-8",$suc)));

Функция показа ответа:

$('tr').on('submit' function() {
var url = $(this).attr('action'),
$.ajax({
url: url,
type: 'POST',
data: $(this).serialize(),
dataType: 'json',
success: function (infa){eval(infa.suc);}
});
});

После выполнения ответа стоимость теста на мгновение показывается а потом исчезает и остается пустой.

Вопрос почему стоимость не остается а исчезает, может я не так передаю на выполнение функцию many()?

Если сайт коверкает исходники разместите их на этом ресурсе и сбросьте ссылки. :smile:

Ну для начала не так :

$suc .= "$('#add$id').load('test.php #add$id');many($id);";

а вот так:

$suc .= "$(#add+$id).load(test.php #add+$id);many($id);";

Затем что показывает лог в браузере?
В идеале кинь ссылку на сайт и страницу.
вообще на сколько я понял ты отправляешь запрос на ту же страницу где у тебя расположен скрипт? то есть обработка запроса на той же странице что и код вывода что по сути не есть хорошо, сделай отдельный файл для обработки php и просто передавай запросы даже не обязательно json так как ты передаёшь готовый html для этого можно использовать просто data и ненадо делать кнопку, смысл? вешай на onclick

<div onclick="her('сюда id можно вешать','сюда второй параметр');">

function her('id','2'){
var s1 = $.trim($("#id_того в чём это число"+id).text()); // Получи начальное число
var s2 = $.trim($("#id_того в чём это число"+id).text()); // Получи прибавляемое или вычитаемое число
val1 = (s1*1 + s2*1); // Прибавь или вычти второе число
var plan = ($('#plan').val());
$.ajax({ // Отправь данные для обработки
url: /ссылка на отдельную страницу для обработки,
type: 'POST',
data: {'func' : 'her', 'plan' : plan},
beforeSend: function(){progress = true;},
success: function(data){
if(data == 1){
// Тут что хочешь после успешного выполнения функции her
$("#id_куда вставишь готовый результат вычисления").html(val1);
}
}
});
};

// Сама обработка в отдельном файле

if($_POST['func'] == "her"){
$plan = проверка($_POST["plan"]);
n// и так далее
echo "1";
}

Таким образом все подсчёты выполнит один скрипт и только при успешном выполнении обработчиком заданной ему функции.

P.S в исходный код не смог запилить так как всё почему то в одну строчку получилось

Авторизация
*
*
Регистрация
*
*
*
Генерация пароля