LINUX.ORG.RU

Две разных по ID формы на одной странице отправка onclick=AjaxFormRequest

 , ,


0

1

Объясните по хардкору, может я что-то не то делаю?

У меня есть две обычные формы

	function AjaxFormRequest(result_id,form_id,url) {
                jQuery.ajax({
                    url:     "login_checker.php",
                    type:     "POST", 
                    dataType: "html",
                    data: jQuery("#"+form_id).serialize(), 
                    success: function(response) { 
                    document.getElementById(result_id).innerHTML = response;
                },
                error: function(response) { 
                document.getElementById(result_id).innerHTML = "Ошибка при входе, что-то сломалось. :(";
                }
             });
        }
<form method="post" id="LOGIN">
	<input type="number" name="telephone" placeholder="телефон" />
	<input type="button"  value="войти"  onclick="AjaxFormRequest('LOGINRESULT', 'LOGIN', 'login_checker.php')" />
</form>
<div  id="LOGINRESULT"></div>

и вторая

	function AjaxFormRequest(result_id,form_id,url) {
                jQuery.ajax({
                    url:     "registration_checker.php",
                    type:     "POST", 
                    dataType: "html",
                    data: jQuery("#"+form_id).serialize(), 
                    success: function(response) { 
                    document.getElementById(result_id).innerHTML = response;
                },
                error: function(response) { 
                document.getElementById(result_id).innerHTML = "Ошибка при регистрации, что-то сломалось. :(";
                }
             });
        }
<form method="post" id="form_reg">
имя <input type="text" name="name_reg" placeholder="фио" /> тел <input type="number" name="telephone_reg" placeholder="телефон"/>
<input type="button" id="form_reg" value="войти" onclick="AjaxFormRequest('result_reg', 'form_reg', 'registration_checker.php')" />
</form>
<div  id="result_reg"></div>

Внезапно когда я дописал вторую форму и протестил её перестала работать первая, начала почему-то отправлять вторую форму.

Но ведь у меня при отправке в AjaxFormRequest есть её ID form_reg а так же в скрипте я проверяю этот ID в начале?!

Почему уходит вторая форма вместо первой, причем результат registration_checker.php выводится в блоке LOGINRESULT!!

Хм, разобрался, получается в начале url: «ссылка», почему-то не работает, а если указать url: url, те переменной то формы начинают работать как надо.

Странно.. это норма? Почему так?

VictimOfLoveToLinux ()
Ответ на: комментарий от VictimOfLoveToLinux

Почему так?

У тебя две функции называются одинаково что-ли?

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

Слушай я реально слоупок, я просто планировал использовать это в разных частях а потом всё в кучу сгреб и подумал что вторая функция мне не нужна и начал использовать только одну в уме а на автомате всё равно оперировал двумя.

Хз почему я продолжил использовать две функции.

Меня перекрыло короче. Спасибо. 2 днянеспал.

VictimOfLoveToLinux ()
Последнее исправление: VictimOfLoveToLinux (всего исправлений: 1)
Ответ на: комментарий от VictimOfLoveToLinux

Любое IDE тебе бы об этом сказало. Кончай писать в блокноте.

ritsufag ★★★★★ ()
Ответ на: комментарий от VictimOfLoveToLinux

Хм, разобрался

неправильно разобрался

anonymous ()
Ответ на: комментарий от ritsufag

Не могу отучиться :<

Иногда сижу в Geany который по сути тем же блокнотом и является.

Что посоветуешь под gtk+?

VictimOfLoveToLinux ()

Пользуешься инлайн хэндлерами в 2016 году.

Deleted ()
Ответ на: комментарий от VictimOfLoveToLinux

Посоветую webstorm. Ну и не надо мешать jquery c pure js.
Если уж обмазался JQ то

document.getElementById(result_id).innerHTML = response;
будет
$(result_id).html(response);
при этом если респонс у тебя текст, то не нужно вставлять его как html(под капотом вероятно используется innerHtml, а это медленнее texContent/innerText)
$(result_id).text(response);
Про эвенты уже сказали. Дополню лишь то что если много однотипных элементов, то не стоит на каждый навешивать событие, а имеет смысл использовать делегирование
$("div").on("click", "el", (e) => {})

ritsufag ★★★★★ ()
Последнее исправление: ritsufag (всего исправлений: 1)
Ответ на: комментарий от ritsufag

Посоветую webstorm

IDE-фанатики - особый вид пхп-абизьян, кек.

Deleted ()
Ответ на: комментарий от ritsufag

Ну и не надо мешать jquery c pure js.

Что это не надо то? Когда jquery начинает «не тормозить» так и делают.

anonymous ()
Ответ на: комментарий от Deleted

Посмотрел бы я тебя как бы ты писал на жаве или шарпе в своем турбоблокноте.

ritsufag ★★★★★ ()
Ответ на: комментарий от ritsufag

This. Хотя для ruby/go мне хватает GNU/Emacs.

anonymous ()
Ответ на: комментарий от anonymous

В данном случае лучше использовать text() для кроссбраузерности(если поддерживаешь IE<9).
Когда начинает тормозить нужно задуматься, а нужна ли тебе jquery? Без поддержки старого хлама сейчас проще писать на чистом, пусть и порой с хаками.

ritsufag ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.