2016-11-26 42 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