2011-04-02 203 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'>"; 
       } 
      } 
     } 
    } 

和我有按鈕:Mark as <a href=\"?marked=read\" onclick=\"submitForm();\"><i>read</i></a><a href=\"?marked=unread\" onclick=\"submitForm();\">/unread</a>

我使用複選框選擇我想要的行沒有$ _GET默認submitForm前();工作得很好。

這工作: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

海蘭 嘗試在表單中添加一個隱藏字段:

<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 [「標記」] insted的的$ _GET

1

href="?marked=read"因爲你提交表單,而不是永遠不會發送到服務器。

要解決該問題,您可以爲您的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'>"; 
     } 
    }