目前,我正在使用我自己的MVC框架。我正在尝试做的是用jQuery进行一个Ajax调用(完成了这一部分),并从控制器调用一个方法,这样我就可以将get变量传递给它,并从Ajax调用中获得我想要返回的输出。
我无法刷新页面,因为它是一个充满表单的页面,并且我不希望在刷新时重置每个表单。我也不能将它传递给"handle.php“,在那里我可以拥有我需要的函数,因为模型和控制器的意义是什么?
我能做什么?或者,更重要的是,处理这种事情的最佳方式是什么?我可以再次加载我需要的类(因为我使用的扩展大约需要6个),并实例化一个调用适当方法的新对象吗?
我想这是我自己的错,因为我试图构建自己的MVC框架,而不是学习像Zend这样的东西,但已经做了什么。任何帮助都将不胜感激,只要指向正确的方向即可。
发布于 2009-10-14 14:40:08
从您的问题中,很难找出您尝试获取的是哪种数据。您需要获取数据来填充表单吗?或者,您是否需要使用PHP脚本将表单中的数据传回数据库?
在这两种情况下,我猜一个“handle.php”脚本可能会工作得很好。只需创建某种可以处理传入数据的基本脚本,对其进行验证,然后加载适当的类(可能使用__autoload)以将其保存在数据库中。
发布于 2009-10-14 14:40:58
您很可能希望以与调用任何其他控制器/方法组合几乎相同的方式向页面发出请求。例如,假设您正在尝试调用控制器Ajax和方法...您希望有URL路由,这样您就可以简单地链接到/ajax/update。这是理想的解决方案。
在这种方法中,您可能希望回显结果,而不是尝试显示模板/布局/视图组合。这可能意味着你需要调整你的CMS来允许这样的事情,但希望不是这样。
您的方法AJAX更新应该能够访问全局变量$_POST和$_GET,这样您就可以检索从请求提交的数据。
发布于 2009-10-14 14:54:13
您应该有一些方法来确定您正在调用哪个命令,这样控制器就可以确定您需要去哪里。
例如,如果您传入一个form # and命令,您的控制器可能会将其传递给该特定form的控制器,然后控制器可以确定如何执行您需要的操作。
我认为将所有这些逻辑放在一个控制器中是有风险的,因为在某些情况下,这将意味着非常长的switch语句。
你可能想解释更多关于你的控制器如何处理来自javascript (客户端)的输入,以确定路由,因为,目前,它只是猜测如何帮助你。
https://stackoverflow.com/questions/1569375
复制