-2

バグ追跡ツールを構築しています。

プロジェクトを作成するとき、次の選択フォームを使用して、プロジェクト ページでプロジェクトのステータス (オープン、進行中、終了) を変更できます。

    <form action="classes/projectStatus.class.php" method="post">
          <label> Change Project Status </label>
          <select name="status" id="status">
               <option value="Open">Open</option>
               <option value="In Progress">In Progress</option>
               <option value="Finished">Finished</option>
           </select>
           <input type='hidden' name='hdnID' value="<?php echo $id;?>"> 
           <input class="small button" value="Change Status" type="submit"> 
    </form>

これは projectStatus.class.php ファイルです。

 $status = $_POST['status'];
 $id     = $_POST['hdnID'];

$sql="UPDATE projects SET status = '$status'";  

 $result = mysql_query($sql); 
 $result = mysql_real_escape_string($sql); 

 if($result){
      header('Location: ../projectpage.php?id='.$id); 
      } else { 
      echo "There is something wrong. Try again later."; } 
      mysql_close();

AJAXでこれを行うにはどうすればよいですか? 誰かが私に正しいコードを提供してくれませんか?!

フォームがSQLインジェクションプルーフではなく、mysqliを使用していないことはわかっています。これを変更しますが、最初に答えが欲しいです:)。

ありがとう!

4

2 に答える 2

0

jQuery の$.post()関数を使用する必要があります。大量の例については、こちらのドキュメントをご覧ください。だからあなたができることは変わることです

<form action="classes/projectStatus.class.php" method="post">

<form onsubmit="return submit();">

次に、送信を次のように定義します

function submit()
{
    $.post('classes/projectStatus.class.php', {
            "status": $('#status').val(),
            "hdnID": $('#hdnID').val()
        }, function(response) {
            //your callback function
        });
    return false;
}

このコードはテストされておらず、動作しない可能性がありますが、何をすべきかを理解するためのものです。これが理にかなっている場合、または質問がある場合はお知らせください:)

于 2013-08-09T23:29:46.747 に答える
0

多くの互換性の問題を解決する jquery を使用します。

jquery サイトにサンプル コードがあります: http://api.jquery.com/jQuery.post/

于 2013-08-09T23:23:43.637 に答える