2016-11-26 121 views
0

我寫了一個php代碼,當我點擊提交按鈕時,組合框中的一些項目將被刪除。現在我想要確認,並且我在下面的代碼中寫下了這個不工作 PHP代碼:JQuery確認對話框提交點擊PHP

$DeleteButton=$_REQUEST['DeleteButton']; 
if ($DeleteButton=="delete") : 
    if ($DeleteComboBox=="PickOne") : 
     $DeleteButton = "" ; 
    else : 
     $query = "DELETE FROM `items` WHERE `id` = $DeleteComboBox LIMIT 1"; 
     $result = mysql_query($query) 
      or die("Database deletion failed"); 
     $DeleteButton = "" ; 
    endif ; 
endif ; 

echo "<BR><BR><FORM NAME=\"EditFORM\" ACTION=\"./index.php\" METHOD=POST>\n"; 
$sql_select = "SELECT * FROM items WHERE id>0 order by name" ; 
$sql_result = mysql_query($sql_select) 
or die ("Couldn't execute SQL query on db table.") ; 
echo "<SELECT ID=\"DeleteComboBox\" NAME=\"DeleteComboBox\">"; 
echo "<OPTION VALUE=\"PickOne\" SELECTED>select item</OPTION>"; 
while ($row = mysql_fetch_array($sql_result)) { 
    echo "<OPTION VALUE=\"$row[0]\">" . $row[2] . " " . $row[1] . "</OPTION>"; 
} 
echo "</SELECT>"; 
echo "<BR><BR><INPUT TYPE=SUBMIT NAME=\"DeleteButton\" VALUE=\"delete\" ID=\"DeleteButton\">\n" ; 
echo "</FORM>\n"; 

JQuery的部分:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#dialog").dialog({ 
     autoOpen: false, 
     modal: true 
    }); 
}); 

$("#DeleteButton").click(function(e) { 
    e.preventDefault(); 
    currentForm = $(this).closest('form'); 
    $("#dialog").dialog({ 
     dialogClass: "no-close", 
     buttons : { 
      "yes" : function() { 
      currentForm.submit(); 
      }, 
      "no" : function() { 
      $(this).dialog("close"); 
      } 
     } 
    }); 

    $("#dialog").dialog("open"); 
}); 
</script> 

問題是這樣的代碼是行不通的。如果我沒有添加jquery部分,代碼完全正常工作,但添加jquery部分後,當我點擊提交按鈕時,jquery對話框出現,但點擊yes按鈕後,表單將被提交而不刪除選定的項目。

回答

0

提交按鈕的值只有在被點擊時纔會被提交,但是您發現此事件並執行e.preventDefault()。之後,currentForm.submit()不再記得點擊了哪個按鈕。

你可以隱藏的輸入動態地添加到窗體:

currentForm.append('<input type="hidden" name="action" value="delete" />'); 
currentForm.submit() 

而不是檢查$_REQUEST['DeleteButton'],你可以在你的PHP檢查這個隱藏輸入值:

$action = $_REQUEST['action']; 
if ($action == 'delete'): 
    // ... delete the item 
endif; 
+0

請你詳細說明更多。我只是想刪除按鈕點擊項目。我怎樣才能使用這個隱藏的領域來實現呢? – Amir

+0

謝謝。那個答案救了我^ _ ^ – Amir