2016-11-26 7 views
0

Я написал код php, в котором при нажатии кнопки отправки какой-либо элемент в combobox будет удален. Теперь я хочу подтверждение, и я написал ниже код, который не работает. 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, но после нажатия кнопки «Да» форма будет отправлена ​​без удаления выбранного элемента.

ответ

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

 Смежные вопросы

  • Нет связанных вопросов^_^