0

2 つの値を持つ JavaScript 関数があります。これらの値を PHP ページに投稿し、そこで mySQL データベースを更新したいと考えています。ここに私がこれまで持っているものがありますが、うまくいきません。

function updateDB(page1,page2)
{
alert("TEST");

$.ajax({
type: 'POST',
url: update.php,
page1: page1,
page2: page2
});
}

Update.php コード

 <?php include "connect.php"; 
 $page1 = $_POST['page1'];
 $page2 = $_POST['page2'];

 mysql_query("UPDATE `pages` SET `page1` = '$page1'");

 ?>

関数を実行すると、POP が表示されますが、データベースは更新されません。

助言がありますか?GET や POST を使用してもかまいません。

前もって感謝します、

4

2 に答える 2

1

jQuery を使用して POST 経由でデータを送信する正しい方法は、dataプロパティを使用することです。

例は次のとおりです。

function updateDB(page1,page2)
{
    $.ajax({
        type: 'POST',
        url: 'update.php',
        data: {
            page1: page1,
            page2: page2
        },
        success: function() {
            window.location = "http://google.com";
        },
        cache: false
    });
}

alertまた、キャッシュを無効にするだけでなく、成功も追加しました。これは投稿ですが、IE は get で要求されたページへの投稿要求をキャッシュします。

MySQLi を使用するか、少なくともクエリをエスケープすることを強くお勧めします。

include "connect.php"; 
$page1 = mysql_real_escape_string($_POST['page1']);
$page2 = mysql_real_escape_string($_POST['page2']);

mysql_query("UPDATE `pages` SET `page1` = '$page1'") or die(mysql_error());

後で href からページを変更したい場合は、次のようにします。

<script>
    function linkme(_this) {
        window.event.preventDefault();
        //do all the code with ajax
        window.location = _this.href;
    }
</script>


<a href="http://google.com" onclick="linkme(this)">Clicky</a>
于 2013-07-23T01:05:03.077 に答える