php
  • jquery
  • html
  • mysql
  • sql
  • 2017-02-28 9 views 0 likes 
    0

    私は、ページをリロードしたり中断することなくフォームを提出する必要があります。 "submit"入力は、SQL INSERTクエリが実行されるPHPコードを開始するだけです。アクションなしでhtmlフォームを送信

    これは私が現時点で使用するものです。

    echo " 
        <form method='post'> 
         <input type='hidden' visibility='hidden' value='hiddenID' name='userid' id='userid'/> 
         <textarea class='form-control' rows='5' name='newmessage' id='newmessage'></textarea><br/> 
         <input class='btn btn-primary' type='submit' name='submit_chatmessage' value='Send'> 
        </form>"; 
    
    
        if($_POST[newmessage] == ""){ 
    
        } else { 
    
         date_default_timezone_set('Europe/Berlin'); // CDT 
    
         $current_stamp = date('Y-m-d H:i:s'); 
    
         $sql=" 
         INSERT INTO tbl_messages (`tbl_users_ID`, `time`, `message`, `from_admin`) VALUES ($_POST[userid],'$current_stamp','$_POST[newmessage]',1)"; 
    
         mysql_query($sql); 
         } 
        } 
    

    私はすでにをonSubmitハンドラまたはaction="javascript:void(0);"のようなものを試してみましたが、それは働いていませんでした。データベースに新しいデータがないため、クエリは実行されませんでした。

    フォームを正常に送信すると、クエリは期待通りに実行されますが、ページがリロードされます。

    +3

    は、AJAXを使用してに見えます –

    +1

    btw、あなたは本当に悪い潜在的なSQLインジェクションの問題をここで –

    +0

    私はその問題について知っているが、私はリロードの問題を最初に解決したい –

    答えて

    0

    あなたはINSERTが成功したときやボタンが既に押されてしまった場合は、PHPスクリプトが開始されることを、言うcoud:

    if((mysql_query($sql)) && (isset($_POST['submit_chatmessage']))) { 
    ... 
    } 
    

    (するmysql_query()がtrueまたはfalseを返す必要があります)

    関連する問題