2015-05-22 2 views
1

Мне интересно, есть ли способ добавить сообщение подтверждения перед выполнением действия в Symfony2.Symfony 2 добавить подтверждение к действию

Я знаю, что я могу добавить сообщение подтверждения в html так:

<a href = {{ my_route }} onclick="return confirm('Are you sure do you want to delete this file?')>" 

, но проблема в том, что моя страница не будет включена в любом twig файле, так что я могу добавить сообщение подтверждения в моем Controller class?

EDIT

Как я сказал в комментарии моя страница будет использоваться в Salesforce в поле с именем детали: Я уже добавить my_url, как JavaScript, как это:

Details= "javascript:document.onClick = window.location.href = my_url"

и он работает, но я до сих пор не знаю, как добавить сообщение с подтверждением - Details field

+0

Я знаю, что ничего о Salesforce поэтому у меня нет ответа, но как общий комментарий ... Это ошибка для действий, которые внесите такие изменения, как удаление файла с помощью запроса GET. Ваш код onclick возникает только в том случае, если клиент выполняет Javascript. Ничто не мешает браузеру получать доступ к маршруту напрямую, а не по вашей ссылке, если кто-то знает URL. Если это общедоступный веб-сайт, то даже искатель Google может посещать и удалять ваши файлы. Все, что вносит изменения, должно выполняться с помощью POST или более конкретного метода, но никогда не GET. – tetranz

+0

Лучшее решение - это сделать это в контроллере: http://stackoverflow.com/a/33176513/3250587 – ReAlPeNx

ответ

0

Я не думаю, что там я способ сделать это. Сообщение подтверждения - это действие, выполняемое на стороне клиента. Вы не можете добавить какое-либо сообщение на основе действия из PHP.

Где ваша страница будет включена? если не в представлении Twig

Edit:

Я думаю, что это может помочь вам: https://jsfiddle.net/5u6wepc5/

код Html

<div> 
    <input type="text" id="input" value="salesforce"/> 
    <input type="button" id="button" value="delete"/> 
</div 

Javascript код

$("#button").click(function(e) { 
    //this prevents that the form is submitted 
    e.preventDefault(); 

    if(confirm('are you sure ?')) { 
     alert('clicked ok'); 
     //do what you want here 
    } else { 
     alert('clicked cancel'); 
     //do what you want here 
    } 
}); 
+0

он будет включен в 'Salesforce' в поле' Formula' настраиваемого объекта – ihssan

+0

Любые действия, которые происходит в пользовательском интерфейсе, будет обрабатываться на стороне клиента. Не можете ли вы использовать Javascript для добавления элементов управления в нужное поле? – Hakim

+0

'javascript code' может быть включен как ссылка, но я не знаю, как добавить url к' javascript code' – ihssan

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