实例演示三

学习目标

通过一个简单的AJAX调用实例,了解DoitPHP框架在数据交互的具体操作方式。

创建文件

1、新建Controller文件为:IndexController, 文件路径为:application/controllers/IndexController.php, 内容如下:

  1. /**
  2. * DoitPHP 演示实例三
  3. *
  4. * @author tommy
  5. * @copyright Copyright (C) www.doitphp.com All rights reserved.
  6. * @version $Id: Index.php 1.0 2013-11-29 18:55:39Z tommy $
  7. * @package Controller
  8. * @since 1.0
  9. */
  10.  
  11. class IndexController extends Controller {
  12.  
  13. /**
  14. * 表单提交(首页)
  15. *
  16. * @access public
  17. * @return void
  18. */
  19. public function indexAction() {
  20.  
  21. $this->display();
  22. }
  23.  
  24. /**
  25. * ajax后台处理
  26. *
  27. * @access public
  28. * @return void
  29. */
  30. public function ajax_handleAction() {
  31.  
  32. $userName = $this->post('user_name');
  33. $password = $this->post('user_password');
  34.  
  35. if(!$userName || !$password){
  36. $this->ajax(false, '用户名和密码不能为空!');
  37. }
  38.  
  39. $this->ajax(true, '操作成功!', array('target'=>'http://wwww.doitphp.com'));
  40. }
  41. }

由上面代码可知,只有indexAction()需要视图文件,而ajax_handleAction(),返回的是json数据,无需视图文件。所以新建视图路径为:application/views/index/index.php。内容如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>演示实例三:AJAX交互</title>
  6. <script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
  7. <script>
  8. $(function(){
  9. $("#submit-btn").click(function(){
  10. var userName=$("#user-name").val();
  11. var password=$("#user-password").val();
  12. if(userName==""){
  13. alert('用户名不能为空!');
  14. $("#user-name").focus();
  15. return false;
  16. }
  17. $.post("<?php echo $this->getActionUrl('ajax_handle'); ?>",
  18. {"user_name":userName, "user_password":password}, function(json){
  19. if(json.status==true){
  20. //当有网址跳转或页面刷新时
  21. if(json.data.target){
  22. if(json.data.target=='refresh'){
  23. location.reload();
  24. } else {
  25. location.href=json.data.target;
  26. }
  27. }
  28. } else {
  29. if(json.msg!='') {
  30. alert(json.msg);
  31. }
  32. }
  33. }, 'json');
  34. });
  35. });
  36. </script>
  37. </head>
  38.  
  39. <body>
  40. <fieldset>
  41. <legend>用户登陆:</legend>
  42. <label>用户名:</label>
  43. <input type="text" name="user_name" id="user-name"><br>
  44. <label>密码:</label>
  45. <input type="password" name="user_password" id="user-password"><br>
  46. <input type="button" name="submit-btn" id="submit-btn" value="登陆">
  47. </fieldset>
  48. </body>
  49. </html>

运行测试

在浏览器地址栏里输入项目的入口文件网址,输入数据,提交表单。测试下效果…

原文: http://www.doitphp.com/index/documentation/?articleid=30