2013-03-11 4 views
1

Я пытаюсь вызвать функцию javascript внутри php, которая выведет кнопку подтверждения. Если пользователь нажмет «да», он перейдет на страницу, иначе он останется на той же странице. Я написал это, но я понятия не имею, что случилось.вызов функции javascript с аргументами в выражении php echo

PHP:

echo "<a href='edit_members.php?id=$studentid'>Edit</a> or <a href=\"javascript:deleteMembers('del_member.php', '$studentid');\">Delete</a><br/><br/>"; 

Javascript (я поставил его прямо перед тегом):

<script type="text/javascript"> 
    function deleteMembers(url, id) { 
     var deleteMemberConfirmation = confirm("Are you sure you want to delete?"); 
     if(deleteMemberConfirmation) { 
     window.location="http://mvcsf.com/admin/"+url+"?"+id; 
     } 
     else { 
     window.location="http://mvcsf.com/admin/view_members.php"; 
     }  
    } 
</script> 

Я включил ERROR_REPORTING(E_ALL); в верхней части страницы, но это ничего не возвращает. Что я сделал не так?

Редактировать: Я изменил имена переменных на deleteMemberConfirmation, но все еще ничего не работает. Я просто нажимаю ссылку, но ничего не происходит.

+0

Что происходит, когда вы загружаете эту страницу? Вы получаете пустой белый экран? Правильно ли это выглядит, но кнопка не работает? и т. д. – octern

ответ

4

delete - зарезервированное ключевое слово в javascript, а не допустимое имя переменной!

И вы получили цитату неправильно:

"<a href=\"javascript:deleteMembers('del_member.php', '$studentid');\">"; 
+0

+1 Похоже, вы избили меня :) – AlienWebguy

+0

спасибо ^^ все исправлено сейчас – Andrew

2

Вы используете ' как целеуказатель в вашем HTML И в ваших JS. Вам придется использовать его в одном месте и " в других.

рабочая версия будет что-то вроде:

echo "<a href=\"edit_members.php?id=$studentid\">Edit</a> or <a href=\"javascript:deleteMembers('del_member.php', '$studentid');\">Delete</a><br/><br/>"; 
0

Для вашего эха, будьте осторожны при использовании одиночной кавычки ' и двойных кавычек ". Одинарная цитата будет закрыта, когда она встретит другую одиночную цитату, если она не скроется как это \'. То же самое касается двойной кавычки.

Я не 100% уверен, что если вы можете использовать JavaScript внутри HREF, но другое решение использовать OnClick при вызове функции яваскрипта, и просто использовать javascript:void(0) или # для HREF атрибута.

echo "<a href='edit_members.php?id=$studentid'>Edit</a> or <a href='javascript:void(0)' onclick=\"deleteMembers('del_member.php', '$studentid');\">Delete</a><br/><br/>"; 

Что касается удаления, изменения удаляющего слова на что-то другом (то есть: del), потому что удалить зарезервированное слово для JavaScript.

<script type="text/javascript"> 
function deleteMembers(url, id) { 
    var del = confirm("Are you sure you want to delete?"); 
    if(del) { 
     window.location="http://mvcsf.com/admin/"+url+"?"+id; 
    } 
    else { 
     window.location="http://mvcsf.com/admin/view_members.php"; 
    } 
} 
</script> 
Смежные вопросы