2011-04-02 6 views
0

私はフラグ付きアカウントのログファイルを試して管理するのに$_GETを使用しようとしていますが、この新しい状況は正確には機能しません。

if (isset($_GET['marked'])) { 
     if ($_GET['marked'] == 'read') { 
      if (isset($_POST['mark'])) { 
       foreach ($_POST['mark'] as $mark) { 
        mysql_query("UPDATE logged SET status = '1' WHERE timeLogged = $mark"); 
        echo "<meta http-equiv='refresh' content='0;url=/admincpanel/flagged.php'>"; 
       } 
      } 
     } 
     else if ($_GET['marked'] == 'unread') { 
      if (isset($_POST['mark'])) { 
       foreach ($_POST['mark'] as $mark) { 
        mysql_query("UPDATE logged SET status = '0' WHERE timeLogged = $mark"); 
        echo "<meta http-equiv='refresh' content='0;url=/admincpanel/flagged.php'>"; 
       } 
      } 
     } 
     else if ($_GET['marked'] == 'save') { 
      if (isset($_POST['mark'])) { 
       foreach ($_POST['mark'] as $mark) { 
        mysql_query("UPDATE logged SET status = '2' WHERE timeLogged = $mark"); 
        echo "<meta http-equiv='refresh' content='0;url=/admincpanel/flagged.php'>"; 
       } 
      } 
     } 
    } 

と私がボタンを持っている:私は私が欲しいとなし$ _GETデフォルトsubmitFormと前に()何行を選択し、チェックボックスを使用していMark as <a href=\"?marked=read\" onclick=\"submitForm();\"><i>read</i></a><a href=\"?marked=unread\" onclick=\"submitForm();\">/unread</a>

。うまく働いた。仕事にMark as <a href=\"#\" onclick=\"submitForm();\"><i>read</i></a>

if (isset($_POST['mark'])) { 
     foreach ($_POST['mark'] as $mark) { 
      mysql_query("UPDATE logged SET status = '1' WHERE timeLogged = $mark"); 
      echo "<meta http-equiv='refresh' content='0;url=/admincpanel/flagged.php'>"; 
     } 
    } 

は、どのように私は私の他のマーカーを得ることができます(セーブ、未読、読んで)

これは働いていましたか?フォームを提出して結果を得ることは$_POSTとの唯一の仕事のようですので、もっと多くの引数を$_POSTに追加する必要がありますか?

、これはjavascriptのあるいかなる場合に役立ちます:

function submitForm() { 
    document.logs.submit(); 
} 

それを要約すると、私は、1に読む更新ステータスをしようとして未読状態0、状態2を保存し、$_GET ISNを使用しています私はそれを間違ってやっています。だから私はこの仕事をするために何をすることができますか?

ありがとうございます。

答えて

2

Hyが、フォームで隠しフィールドを追加してみ :

<input type="hidden" name="marked" id="marked" value="" />

その後、ボタンを:

`

<a href=\"?marked=read\" onclick=\"submitForm('read');\"><i>read</i></a><a href=\"?marked=unread\" onclick=\"submitForm('unread');\">/unread</a>` 

としてマークするとJavaScript関数:

function submitForm(mark) { 
    document.getElementById('marked').value = mark; 
    document.logs.submit(); 
}` 

次に、PHPスクリプトで$ _REQUESTを使用して[「マーク」]あなたの代わりにフォームを送信しているため、サーバーに送信されることはありません$ _GET

1

href="?marked=read"のinsted。

この問題を解決するには、submitForm()関数に引数を追加し、この引数を 'marked'という名前の隠しフォーム入力の値として保存します。

Mark as <a href="#" onclick="submitForm('read')">read</a> 

function submitForm(marked) { 
    // TODO: Setup hidden input field with the marked argument 
    document.logs.submit(); 
} 
1

ビットクリーンで簡潔な、PHPコードのためにこれを試してみてください:

if (isset($_GET['marked'])) { 
    if ($_GET['marked') == 'read') 
     $status = 1; 
    elseif ($_GET['marked'] == 'unread') 
     $status = 0; 
    else 
     $status = 1; 
    } 
if (isset($_POST['mark'])) { 
    foreach ($_POST['mark'] as $mark) { 
     mysql_query("UPDATE logged SET status = $status WHERE timeLogged = $mark"); 
     echo "<meta http-equiv='refresh' content='0;url=/admincpane/flagged.php'>"; 
     } 
    } 
このよう

関連する問題