Помощь

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

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

Есть код вывода стоимости теста:
<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"];?>"
;
;;></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()?
Ответ на: Artsem · 8 лет назад
“<b>ПС</b><br /><b>Коды которые в тексте написаны правильно и если где то кажется что не правильно типо пропустил знак &gt; /&quot; и т.д. то знайте защита сайта от взлома их переконвертировала!</b><br...”
user avatar
14 лет назад
Сообщений: 34
8 лет назад
Если сайт коверкает исходники разместите их на этом ресурсе и сбросьте ссылки. \":smile:\"
Ответ на: Angus123 · 8 лет назад
“Если сайт коверкает исходники разместите их на <!--dle_leech_begin--><a href=\"https://sfb.su/engine/go.php?url=aHR0cHM6Ly9wYXN0ZWJpbi5jb20v\" >этом ресурсе</a><!--dle_leech_end--> и сбросьте ссылки....”
user avatar
14 лет назад
Сообщений: 257
8 лет назад
Ну для начала не так :
$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 в исходный код не смог запилить так как всё почему то в одну строчку получилось
Ответ на: nanotek · 8 лет назад
“Ну для начала не так :<br /><pre><code>$suc .= &#34;$(&#39;#add$id&#39;).load(&#39;test.php #add$id&#39;);many($id);&#34;;</code></pre><br />а вот так:<br /><pre><code>$suc .= &#34;$(#add+$id).load(te...”
Ответить