3

生徒と家庭教師のデータベースを扱うウェブサイトを作ろうとしています。私の問題は、これまでのところ、PHP スクリプトを実行できる唯一の方法 (たとえば、データベースからユーザーを削除する方法) は、情報をリンクに入れ、ユーザーにそのリンクをクリックさせることです。これは機能しますが、ユーザーが常に新しいページにリダイレクトされることを意味するため、面倒です。$_SERVER['PHP_SELF'] も使用していますか? 他の情報、しかし、同じページの長いスタックを構築するため、これは面倒です(つまり、ブラウザの戻る/進む機能を使用しようとすると、同じページに移動します).

クリックすると、ページをリダイレクト/変更せずにphpスクリプトに情報を渡すリンク/ボタンを生成できるようにしたいと思います(ページを更新して新しい結果を表示することを除く)。

ページがすべてのユーザーのリストを生成し、各ユーザーを削除するためのそれぞれのリンク/ボタンを生成する私のサイトの例:

//Gets the list of users and iterates through the data
while ($row = mysqli_fetch_array($data))

    {
        $fullname = $row['lastname'] . ", " . $row['firstname'];
        $username = $row['username'];
        $remove_link = "remove_user.php?username=$username";

        echo '
                  <tr>
                    <td>' . $fullname . '</td>
                    <td>' . $username . '</td>
                    <td> <a href="'. $remove_link . '">Remove this user.</a> </td>
                  </tr> 
        ';

    } 
echo '</table>';

$remove_link をクリックすると、ユーザーを削除して元のページ (user_list.php) にリダイレクトする php スクリプトが読み込まれます。ページをリダイレクト/変更せずに remove_user.php スクリプトを呼び出す方法はありますか?

前もって感謝します。

4

6 に答える 6

2

今日のWebサイトの動作は、Ajaxを使用してページのコンテンツを動的にロード/変更することです。

Ajaxを使用する最良の方法は、jQueryのAjax関数を使用することです。インターネット上には、jQueryの使用方法を示す多くのチュートリアルがあります。

AjaxにjQueryを使用したくない場合は、昔ながらの方法を使用できます。w3schools.comでチュートリアルを見ることができます。

お役に立てれば!

于 2012-07-31T19:46:10.853 に答える
1

JavaScript と AJAX に慣れる必要があります。おそらく、javascript フレームワークに jQuery を使用することを検討してください。jQuery はこれを比較的単純にし、幅広いサポートを備えた最も人気のあるフレームワークです。

于 2012-07-31T19:28:19.763 に答える
0

上部の回答に加えて。ユーザーが JavaScript を無効にしている場合は、この AJAX フォールバック スクリプトを使用します。削除スクリプトの最後に、次のように配置します。

<?php
//check if the request is not done with ajax
if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') { 
//now check if the http referer is not empty. It's where the click took place. And if it's not empty redirect back to where the user came from.
    if (!empty($_SERVER['HTTP_REFERER'])) {
        header("Location: " . $_SERVER['HTTP_REFERER']);
        exit;
    }
}
?>
于 2012-07-31T20:13:13.393 に答える
0

を介してこれを行う必要があります。これをAjax行う最も簡単な方法の 1 つは、jQueryとその$.ajax$.post$.getおよび$.getJsonメソッドを使用して、やりたいことを実行できるようにすることです。

jQuery を使用したことがない場合は、特にnettutsでいくつかのチュートリアルを検索することをお勧めします。

于 2012-07-31T19:28:37.233 に答える
0

代わりに、履歴にパスを追加せず、アプローチを使用<a href="link">できます。<a onlick="window.location.replace('link')">PHP_SELF

それ以外は、AJAX を使用する必要があります。

于 2012-07-31T19:29:07.443 に答える
0

jQuery で Ajax 呼び出しを行う 5 つの方法

このチュートリアルを読んでください。

于 2012-07-31T19:37:42.740 に答える