如何在 octobercms 中使用 ajax 或 javascript 动态更改表单的方向
how to change the direction of a form dynamicly with ajax or javascript in octobercms
我有一个表单,我希望它在我提交时能够重定向我
在另一页中,
知道重定向路径必须是动态的,
这意味着我使用了一个 javascript 函数来接受用户的选择和 return 一个字符串
ajax 处理程序 data-request-redirect 只接受一个字符串并且不执行 javascript 代码:
title = "test"
url = "/test"
layout = "default"
is_hidden = 0
==
<?php
function onStart()
{
$this['example'] = Session::get('example-key');
}
function onTest()
{
Session::put('example-key', input('my-input'));
}
?>
==
<form method="POST" data-request="onTest" data-request-redirect="......" name="formu" accept-charset="UTF8" enctype="multipart/form-data">
<input type="text" name="my-input">
<button type="submit">Submit</button>
</form>
{% if example %}
<strong>Example: {{ example }}</strong>
{% endif %}
<script type = "text/javascript">
$(function() {
var $buttonBien = $('.bien');
$buttonBien.on('click',function (event) {
event.preventDefault();
});
});
function type_bien(x){
switch( x) {
case 0:
return "formulaire_villa";
break;
case 1:
return "formulaire_villa";
break;
case 2:
return "formulaie_riad";
break;
case 3:
document.getElementById(3).checked="true";
/* document.forms["formu"].action="formulaire_appartement";*/
return "formulaire_appartement";
break;
default:
alert('local_commerce est selected');
}
}
</script>
所以在 data-request-redirect
中做什么
我真的被屏蔽了
请帮忙
可能简单的事情就是使用Redirect
门面。
when you use October Ajax framework
you can send redirect from server.
所以从你的函数/代码部分。
use Redirect;
function onTest()
{
$defaultUrl = '/home';
// you get data from post
// from hidden or select etc ...
$someChoise = post('some-choise');
if($someChoise == 'my-profile') {
$defaultUrl = '/user/profile';
}
Session::put('example-key', input('my-input'));
return Redirect::to($defaultUrl);
}
more info on Redirect facade
https://octobercms.com/docs/services/response-view#redirects
现在它会在没有指定的情况下自动将网页重定向到 /home
如果您将 some-choise
指定为 my-profile
,它会将页面重定向到 /user/profile
so in this way you can even pass url in post data
and use it, you don't need to do anything fancy [ so you can omit data-request-redirect
]
data-request-redirect 是字符串,所以它的静态数据可能是你可以更新它但上面的方法更适合动态重定向 url 我猜。 [ redirect specified as string
=> https://octobercms.com/docs/ajax/javascript-api#javascript-api ]
如有疑问请评论。
我有一个表单,我希望它在我提交时能够重定向我 在另一页中,
知道重定向路径必须是动态的,
这意味着我使用了一个 javascript 函数来接受用户的选择和 return 一个字符串
ajax 处理程序 data-request-redirect 只接受一个字符串并且不执行 javascript 代码:
title = "test"
url = "/test"
layout = "default"
is_hidden = 0
==
<?php
function onStart()
{
$this['example'] = Session::get('example-key');
}
function onTest()
{
Session::put('example-key', input('my-input'));
}
?>
==
<form method="POST" data-request="onTest" data-request-redirect="......" name="formu" accept-charset="UTF8" enctype="multipart/form-data">
<input type="text" name="my-input">
<button type="submit">Submit</button>
</form>
{% if example %}
<strong>Example: {{ example }}</strong>
{% endif %}
<script type = "text/javascript">
$(function() {
var $buttonBien = $('.bien');
$buttonBien.on('click',function (event) {
event.preventDefault();
});
});
function type_bien(x){
switch( x) {
case 0:
return "formulaire_villa";
break;
case 1:
return "formulaire_villa";
break;
case 2:
return "formulaie_riad";
break;
case 3:
document.getElementById(3).checked="true";
/* document.forms["formu"].action="formulaire_appartement";*/
return "formulaire_appartement";
break;
default:
alert('local_commerce est selected');
}
}
</script>
所以在 data-request-redirect
中做什么我真的被屏蔽了
请帮忙
可能简单的事情就是使用Redirect
门面。
when you use
October Ajax framework
you can send redirect from server.
所以从你的函数/代码部分。
use Redirect;
function onTest()
{
$defaultUrl = '/home';
// you get data from post
// from hidden or select etc ...
$someChoise = post('some-choise');
if($someChoise == 'my-profile') {
$defaultUrl = '/user/profile';
}
Session::put('example-key', input('my-input'));
return Redirect::to($defaultUrl);
}
more info on Redirect facade
https://octobercms.com/docs/services/response-view#redirects
现在它会在没有指定的情况下自动将网页重定向到 /home
如果您将 some-choise
指定为 my-profile
,它会将页面重定向到 /user/profile
so in this way you can even pass
url in post data
and use it, you don't need to do anything fancy [ so you can omitdata-request-redirect
]
data-request-redirect 是字符串,所以它的静态数据可能是你可以更新它但上面的方法更适合动态重定向 url 我猜。 [ redirect specified as string
=> https://octobercms.com/docs/ajax/javascript-api#javascript-api ]
如有疑问请评论。