0

SOですでに何度も尋ねられた質問に投稿して申し訳ありませんが、私はこれらの多くを経験してきましたが、まだ自分の問題を解決できません。

ID番号を「delete.php」に投稿することを目的としたJQueryスクリプトを含むインデックスページ「index.php」が同じディレクトリにあります。「delete.php」は、その ID 番号に一致する行を MySQL データベースから削除する必要があります。'index.php' は、HTML から削除された項目も削除する必要があります。

HTML からアイテムを削除する最後の部分は機能しますが、エラー コンソールに "200 OK" という応答が表示されますが、'delete.php' は何もしません。echo ステートメントをチェックして実行しません。

コード index.php:

<!DOCTYPE html>
<html>
    <head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js">    </script>
        <script>
            jQuery(document).ready(function(){
                $(".deleteitem").click(function(){
                    var parent = $(this).closest('tr');
                    var id = parent.attr('id');
                    $.ajax({
                        type: "POST",
                        URL: "delete.php",
                        data: "id=" +id,
                        success: function(data){
                            $('#'+id).remove();
                        }
                    });
                });
            });
        </script>
    </head>
    <body>
        <table>
            <tr id="1">
                <td>Milk</td>
                <td>3.99</td>
                <td><button class="deleteitem"><img src="deletebutton.gif"></button></td>
            </tr>
            <tr id="2">
                <td>Bread</td>
                <td>1.99</td>
                <td><button class="deleteitem"><img src="deletebutton.gif"></button></td>
            </tr>
        </table>
    </body>
</html>

delete.php:

        <?php

mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("tryit") or die(mysql_error());

$id = $_POST[id];

echo "DELETE.PHP HAS RUN<br>";

echo "ID = $id";

if (isset($id)) {
    $query = "DELETE FROM tryit WHERE id = '$id'";
    mysql_query($query) or die('Error, query failed');
}

?>

これが機能しない理由についての手がかりは大歓迎です-これは私のナットをやっています!

4

3 に答える 3

1

PHP スクリプトでは、 の代わりに$_POST[id]を実行する必要があります$_POST['id']

データに関しては、jQuery はオブジェクトまたはクエリ文字列のいずれかを想定しています。クエリ文字列を渡しているので、問題ありません。

于 2012-12-10T15:11:50.920 に答える
0

試す

$.ajax({
    type: "POST",
    url: "delete.php",
    data: {id: id},
    success: function(data){
       $('#'+id).remove();
    }
});

URLは小文字にする必要があります!

于 2012-12-10T15:23:19.977 に答える
0

解決済み:

問題は jquery にはありませんでした (タイプミスであった「url:」の大文字と小文字の区別を除いて)。

問題はSQLクエリにありました。私が持っていた

$sql = "DELETE * FROM tryit WHERE id = '$id'"; 

もちろんそうすべきだったのに

$sql = "DELETE FROM tryit WHERE id = '$id'"; 

(なしで *)。

于 2012-12-10T23:16:31.360 に答える