2015-06-07 3 views
1

Я пытаюсь создать всплывающее окно Jquery, чтобы удалить запись из таблицы.JQuery Popup to Delete

Вот что я делаю, чтобы назвать мою функцию:

echo '<div id="dialog-confirm">'.'<td>' . '<input type="image" src="delete.png" id = "deleteconfirm" style = "height:20px;margin-left :8px;" onclick = "deleterecord('.$row['id'].')">' . '</td>'.'</div>'; 

А вот моя функция:

function deleterecord (id) { 
    function fnOpenNormalDialog() { 
    $("#dialog-confirm").html("Confirm Dialog Box"); 

    // Define the Dialog and its properties. 
    $("#dialog-confirm").dialog({ 
     resizable: false, 
     modal: true, 
     title: "Modal", 
     height: 250, 
     width: 400, 
     buttons: { 
      "Yes": function() { 
       $(this).dialog('close'); 
       callback(true); 
      }, 
       "No": function() { 
       $(this).dialog('close'); 
       callback(false); 
      } 
     } 
    }); 
} 

$('#deleteconfirm').click(fnOpenNormalDialog); 

function callback(value) { 
    if (value) { 
     window.location.href = 'delete_ven.php?id=' + id; 
    } else { 
     alert("Rejected"); 
    } 
} 
} 

Любая помощь? Это не работает.

+0

Это то, что я делаю, чтобы назвать свою функцию –

ответ

1

Ваш метод обратного вызова не получает никакой информации о ID строки. Например, вы можете изменить следующие строки:

callback(true); 

в

callback(id); 

и

window.location.href = 'delete_ven.php?id=' + id; 

в

window.location.href = 'delete_ven.php?id=' + value; 

Edit: Кроме того, удалить все строки, содержащие "fnOpenNormalDialog" и исправить код acc ordingly. Событие клика уже назначено в html, и функция внутри функции не предназначена для работы таким образом.

+1

В этом случае будет проблема с id = 0, но легко решить, используя второй аргумент или другую функцию для «Нет», он даже может поставить ' alert («Отклонено»), 'там. – oscargilfc