У меня есть элемент в приложении CakePHP, в котором есть поля и кнопка. Я хочу использовать этот элемент для размещения на всех моих страницах и когда пользователь нажимает кнопку, чтобы перейти к тому же контроллеру и действию. Форма в элементе отлично работает для корневой страницы, но когда я нахожусь на другой странице и нажимаю кнопку, функция никогда не ударяется, а в адресной строке будет добавлен контроллер/функция.Форма заявки не работает
Элемент:
<form id="login-user" action="Login/doSomething" method="post">
<input id="edit-submit-button" class="form-submit" type="submit" value="Log in" name="op"> </input>
</form>
мой контроллер:
class LoginController extends Controller{
public $helpers=array('Js'=>array('Jquery'), 'Session');
public function index() {
$this->autoRender = false;
}
function doSomething(){
$this->redirect("/");
}
}
У меня есть этот элемент в файле Pages.ctp и в представлении. Когда я нажимаю кнопку, которая находится в файле Pages.ctp, страница перенаправляется на localhost/myApp/Login/doSomething, и функция получает очень просто. Но если элемент находится в представлении (localhost/myApp/somePage/view), и пользователь нажимает кнопку формы, страница перезагружается и добавляет «Login/doSomething» в конец адреса, но никогда не ударяет по этой функции.
У кого-нибудь есть идеи, как это исправить?
Вы имеете в виду добавить «/» к действию, например «action =»/Login/doSomething »? Если это так, я пробовал это, и я просто получил ошибку 404. Я бы предпочел не делать этого с помощью помощника формы. Как создать URL-адрес с помощником? Благодаря! – jason
@jason (см. Ответ) – Dave
Спасибо за помощь. Я хотел сохранить регулярные формы и не использовать помощник формы по другим причинам, но это привело меня к решению.Я просто добавил действие с именем приложения (то есть: