1

全てにおいて良い日、

これを行う方法について一日中検索しています。私が望むのは、すべての「クリック」を 1 つの php ファイルに入れ、アクションを決定することです。

itemAction.php

    include 'inc/database.php';
    include 'inc/functions.php';

    if ($_GET['action'] == 'delete') {
        // do delete action <-- this one is working
    } else if ($_GET['action'] == 'edit') {
        // do edit action; NOW HERE I WANT TO REDIRECT TO ANOTHER PAGE
        header("location: edit.php"); // I can't do something like this. Why?
    }

html

<div class="action">    
    <a id="delete" href="itemAction.php" rel="<!--some_id-->"><img src="images/trash.ico" alt="delete"></a>
    <a id="edit" href="itemAction.php" rel="<!--some_id-->"><img src="images/Pencil-icon.png" alt="edit"></a>
</div>

js

$("div.action a#delete").click(function (e) {
    var decision = confirm("Are you sure you want to delete the item?");
    if (decision) {
        e.preventDefault();
        $.get('itemAction.php', {action : 'delete', id : $(this).attr("rel")}, function (data) {            
            location.reload();
            alert("Succssfully deleted!");
        });
    }
    return false;
});

$("div.action a#edit").click(function (e) {
    e.preventDefault();
    $.get('itemAction.php', {action : 'edit', id : $(this).attr("rel")});
});

削除アクションは機能しているようですが、他のページにリダイレクトする編集アクションではできません。そのようにするためのより良い方法は何ですか?どんな助けでも大歓迎です。ありがとう

4

2 に答える 2

2

ajaxは応答html、テキスト、xml、またはjson応答のみを送信しますが、リダイレクトはできないため、これを行うことはできません.

リダイレクトするには、何かを返す"redirectme."必要があり、その応答に基づいて、JavaScript にコードを追加して目的の場所にリダイレクトする必要があります。

あなたができることは何ですか?

PHPファイルで、コードの下に追加し、

echo json_encode(array('status' => 'edit', 'url' => 'edit.php'));

上記の応答に基づいて、以下のように変更$.get response callbackします。

$.get('itemAction.php', {action : 'delete', id : $(this).attr("rel")},
   function (data)
   {
     if(response.status == 'edit'){
       window.location = response.url;
     }
});

これは、必要に応じて設定する必要がある単なるガイドラインです。

コメント応答

js が無効になっている場合は、それに応じてコーディングする必要があります。

まず、HTML リンクを以下のように変更する必要があります。

<a id="delete" href="itemAction.php?action=delete&id=someid"
<a id="edit" href="itemAction.php?action=edit&id=someid"

上記のリンクをクリックして、href 属性を使用し$.getて以下のように渡します。

$.get( $(this).href()

そうすることで、js が無効になり、コードも機能します。

于 2013-09-19T04:39:47.497 に答える