2017-10-07 10 views
1

ajaxを使用してコメントシステムを作成しようとしています。システムは、INSERT INTOを実行し、必要な情報を返すpost_comment.phpをajax呼び出しにします。Ajaxコールでページがクラッシュする

問題:スクリプトが動作していないように見えるだけです。私のページがフリーズし、8秒後にページが更新されるのを待つとフリーズします。

<script type="text/javascript"> 
function post() 
{ 
    var comment = document.getElementById("content").value; 
    if(comment) 
    { 
    $.ajax 
    ({ 
     type: 'post', 
     url: 'templates/post_comment.php', 
     data: 
     { 
     content:content, 
     user_id:<?php echo $_SESSION['id']; ?>, 
     brand_id:<?php echo $_SESSION['brand_id']; ?>, 
     ticket_id:<?php echo $_GET['unique_id']; ?> 
     }, 
     success: function (response) 
     { 
      console.log('okay response'); 
     document.getElementById("all_comments").innerHTML=response+document.getElementById("all_comments").innerHTML; 
     document.getElementById("content").value=""; 
     document.getElementById("username").value=""; 

     }, error: function() { 
      alert("There was an error. Try again please!"); 
     } 
    }); 
    } 

    return false; 
} 
</script> 

私が見る(Googleのコンソールからの)唯一の誤差は次のようである:最大コールスタックサイズは、任意のアイデアを、それがリフレッシュ時に表示され、それが

を消えるjqueryの を超えましたか?前もって感謝します!

+0

なぜ 'falseを返す;'これはどんな影響を与える線量? – Webdesigner

+0

あなたのHTMLコードを追加できますか? @Webdesigner私は 'post()'がトリガーされたときに、ページ – linasmnew

+1

を更新してからの送信を避けるべきだと思いますか?ユーザーがボタンをクリックしたときですか?あなたが得ているエラーは、あなたがブラウザのメモリの限界を超えていることを意味します。 –

答えて

1

あなたの問題は、この行である:

content:content, 

変更し、その行に:

content: comment, 

コンテンツがオブジェクトであるため、その行を変更して、別の内部でオブジェクトを追加することはできませんしてくださいオブジェクト。 クロム最終バージョンこのオブジェクトは入力コンテンツですが、mozillaではウィンドウオブジェクトを参照しています。

私はMDNからこれを報告:

content:非推奨 この機能は、Web標準から削除されました。いくつかのブラウザはまだそれをサポートしているかもしれませんが、それは落とされつつあります。可能であれば、それを使用したり、既存のコードを更新したりしないでください。このページの下部にある互換性表を参照して決定を導きます。この機能はいつでも機能しなくなる可能性があることに注意してください。

私はあなたがコメント変数を参照したい確信しています。

function post(e) { 
 
    e.preventDefault(); 
 
    var comment = document.getElementById("content").value; 
 
    // 
 
    // the next line in order to show the type of content 
 
    // 
 
    console.log('content is : ' + typeof(content)); 
 
    if (comment) { 
 
     $.ajax({ 
 
      type: 'GET', 
 
      url: 'https://api.github.com/repositories', 
 
      data: { 
 
       since: '384', 
 
       // 
 
       // changed from content to comment 
 
       // 
 
       content: comment, 
 
       user_id: 'id', 
 
       brand_id: 'brand_id', 
 
       ticket_id: 'unique_id' 
 
      }, 
 
      dataType: "json", 
 
      success: function (response) { 
 
       console.log('okay response'); 
 
       document.getElementById("all_comments").innerHTML = response + document.getElementById("all_comments").innerHTML; 
 
       document.getElementById("content").value = ""; 
 
       document.getElementById("username").value = ""; 
 

 
      }, 
 
      error: function() { 
 
       alert("There was an error. Try again please!"); 
 
      } 
 
     }); 
 
    } 
 
    return false; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<form> 
 
    content: <input type="text" id="content" value="content"> 
 
    all_comments: <input type="text" id="all_comments" value="all_comments"> 
 
    username: <input type="text" id="username" value="username"> 
 
    <input type="submit" value="Submit" id="submit" onclick="post(event);"> 
 
</form>

+0

yess !!それは問題でした...しかし、あなたが言ったことが原因ではありません...私は変数のために別の名前を使用したからです。私は使用したいです..ごめんなさい:) – Nic

関連する問題