我试图在其上创建一个带有几个滑块的页面。当您更改这些滑块时,我想修改模型中出现的数据并更新视图。
我知道你可以在常规PHP中使用ajax
来解决这个问题。但我在phalcon框架内解决这个问题的经验太少了。 Phalcon\Forms
不支持<input type="range" />
。所以我在伏特文件中添加了它:<input id="number_of_rooms" name="number_of_rooms" type="range" />
。
我假设下一步是使用滑块事件处理程序创建一个JS
文件,该处理程序会为我的控制器创建一个ajax调用。我已经创建了事件处理程序,但是如何处理ajax调用给我带来了麻烦。
$('#number_of_rooms').on("change mousemove", function() {
// $.ajax({
// method: "POST",
// url: "controllers/IndexController.php",
// data: { value: this.value }
// })
console.log("value: " + this.value);
});
但是如何将这些数据反馈给我的控制器以修改我的模型,我不知道。帮助会非常受欢迎。
如果我接近这个完全错误,请告诉我。谢谢!
答案 0 :(得分:0)
$.ajax({
type:'POST',
url: "{{ url() }}/your_path", (you create this path in file route)
data: { value: this.value },
async: false,
dataType: "json",
success:function(result){
// the result will return from the controller
// use the result to update your modal content
},
error: function(){
// got error from controller
// Do something
}
});
在你的路线
$backend->addPost('/your_path', array(
'controller' => 'yourcontroller',
'action' => 'yourmethod'
));
不要忘记创建你的控制器控制器并在那里添加你的方法
希望这个帮助
答案 1 :(得分:0)
由于您通过ajax发送数据,因此POST-ed数据将为json格式,您可以使用this-&gt; request-&gt; getPost()捕获它并将其传递到您的getPost()处理程序进行修改。例如,返回的数据将为value: val
,然后使用控制器中的$variable = $this->request->getPost('value')
进行捕获