ShopForBux.com
Помощь

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

66 3
user avatar
Пользователь
На сайте 8 лет
Сообщений : 36
Репутация : 0
8 лет назад #2119
ПС
Коды которые в тексте написаны правильно и если где то кажется что не правильно типо пропустил знак > /" и т.д. то знайте защита сайта от взлома их переконвертировала!

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

t;

"

type="hidden" value="10">
"

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

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

>);" autocomplete="off">
Стоимость заказа: &quot
;
;;>





Скрипт события :
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()?
user avatar
Пользователь
На сайте 14 лет
Сообщений : 34
Репутация : 0
8 лет назад #2118
Если сайт коверкает исходники разместите их на этом ресурсе и сбросьте ссылки. \":smile:\"
user avatar
Пользователь
На сайте 14 лет
Сообщений : 257
Репутация : 0
8 лет назад #2120
Ну для начала не так :
$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



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 в исходный код не смог запилить так как всё почему то в одну строчку получилось
Автор темы
author avatar
Artsem
Пользователь
На сайте 8 лет
Сообщений 36
Тем 9
Репутация 0
Теги темы
Автор не добавил тегов для этой темы
Ответить
Написал(а):