ホームページ > 記事 > ウェブフロントエンド > Ajaxのデータパラメータエラーによるページクラッシュの問題を解決する方法
今回は、ajax のデータパラメータエラーによってページクラッシュが発生する問題を解決する方法を説明します。 ajax のデータパラメータエラーによってページクラッシュが発生する場合の注意事項は何ですか? 以下は実際的なケースです。一緒に見てください。
今日、選択したテーブルの 1 行のデータを Ajax 経由でバックエンドに送信しようとしましたが、Web サイトがクラッシュしてしまいました。 コードは次のとおりです:$('.icon-edit').click(function (event) { 这是一个按钮 o=$('.icon-edit').index($(this))+1; edit.style.display='block'; //console.log('$(this)',$(this).parent().parent()); let message=$(this).parent().parent(); $("#non").val(message.children('td:eq(0)').html()); $("#name").val(message.children('td:eq(1)').html()); $("#sex").val(message.children('td:eq(2)').html()); $("#age").val(message.children('td:eq(3)').html()); $("#xueyuan").val(message.children('td:eq(4)').html()); $("#grade").val(message.children('td:eq(5)').html()); $("#phone").val(message.children('td:eq(6)').html()); $("#room").val(message.children('td:eq(7)').html()); l=message.children('td:eq(0)').html(); }); $('#ok').click(function () { //event.stopImmediatePropagation(); let text=$('table'); id=$('#non').val(); username=$('#name').val(); sex=$('#sex').val(); age=$('#age').val(); institute=$('#xueyuan').val(); grade=$('#grade').val(); phone=$('#phone').val(); hlbhl=$('#room').val() text.find("tr:eq("+o+")").children('td:eq(0)').text(id); text.find("tr:eq("+o+")").children('td:eq(1)').text(username); text.find("tr:eq("+o+")").children('td:eq(2)').text(sex); text.find("tr:eq("+o+")").children('td:eq(3)').text(age); text.find("tr:eq("+o+")").children('td:eq(4)').text(institute); text.find("tr:eq("+o+")").children('td:eq(5)').text(grade); text.find("tr:eq("+o+")").children('td:eq(6)').text(phone); text.find("tr:eq("+o+")").children('td:eq(7)').text(hlbhl); $.ajax({ type: "POST", url: "doAction2.php",//请求的后台地址 data: { non:o, id: id, username: username, sex: sex, age: age, institute: institute, grade: grade, phone: phone, hlbhl: hlbhl },//前台传给后台的参数 dataType: "json", ansync: true, ContentType: "application/json; charset=utf-8", success: function (msg) {//msg:返回值 a=2; console.log(a); } }); edit.style.display='none'; });コードの一般的な考え方は、ボタン ($('.icon-edit')) をクリックすると、フォーム (編集) がポップアップし、フォーム データが表示されます。 [OK] ボタン ($('#ok')) をクリックすると、フォームを変更する目的を達成するために、フォーム データが前にクリックした行のデータを上書きします。 [OK] をクリックすると、ajax がトリガーされます。
変更されたデータをバックエンドに送信し、データを取得してデータベースを更新します。 結果ページはエラーを報告しませんでしたが、長時間確認した結果、ajaxのデータパラメータが間違って書かれていることがわかりました。
id=text.find("tr:eq("+o+")").children('td:eq(0)').text(id); username=text.find("tr:eq("+o+")").children('td:eq(1)').text(username); sex=text.find("tr:eq("+o+")").children('td:eq(2)').text(sex); age=text.find("tr:eq("+o+")").children('td:eq(3)').text(age); institute=text.find("tr:eq("+o+")").children('td:eq(4)').text(institute); grade=text.find("tr:eq("+o+")").children('td:eq(5)').text(grade); phone=text.find("tr:eq("+o+")").children('td:eq(6)').text(phone); hlbhl=text.find("tr:eq("+o+")").children('td:eq(7)').text(hlbhl); $.ajax({ type: "POST", url: "doAction2.php",//请求的后台地址 data: { non:o, id: id, username: username, sex: sex, age: age, institute: institute, grade: grade, phone: phone, hlbhl: hlbhl },//前台传给后台的参数 dataType: "json", ansync: true, ContentType: "application/json; charset=utf-8", success: function (msg) {//msg:返回值 a=2; console.log(a); } }); edit.style.display='none'; });
などではなく、n.fn.init [td, prevObject: n.fn.init(1), context:
document], ajax の不注意とエラーについてはあまり詳しくないので、最初はパラメーターが原因ではないと思って、長い間コードを読んで初めて原因がわかりました。この記事の事例を読んだ後にその方法を説明してください。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事にご注目ください。
推奨読書:
以上がAjaxのデータパラメータエラーによるページクラッシュの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。