在这篇文章中,我们将带领您了解Cakephp2.3.0的简单ajax示例的全貌,包括ajaxphp教程的相关情况。同时,我们还将为您介绍有关ajax–与cakephp的简单json响应、ajax+ph
在这篇文章中,我们将带领您了解Cakephp 2.3.0的简单ajax示例的全貌,包括ajax php教程的相关情况。同时,我们还将为您介绍有关ajax – 与cakephp的简单json响应、ajax+php+mysql 读取数据库的简单示例、Ajax示例、Cakephp $this-> layout =’ajax’的知识,以帮助您更好地理解这个主题。
本文目录一览:- Cakephp 2.3.0的简单ajax示例(ajax php教程)
- ajax – 与cakephp的简单json响应
- ajax+php+mysql 读取数据库的简单示例
- Ajax示例
- Cakephp $this-> layout =’ajax’
Cakephp 2.3.0的简单ajax示例(ajax php教程)
请帮助我,如果有人可以给我一个例子,如何在cakephp 2.3.0中使用ajax,一个例子是这样的
<?php echo $this->html->link(''Original'', ''#'', array(''onclick''=>''return false;'', ''id''=>''remanufactured-link'', ''class''=>''get-type-product-link'')); ?><div id="content"></div>
当我单击original
链接时,具有ID的div content
会发生变化。我如何使用cakephp 2.3.0做到这一点?
答案1
小编典典请参见以下示例:
$.ajax({ dataType: "html", type: "POST", evalScripts: true, url: ''<?php echo Router::url(array(''controller''=>''your-controller'',''action''=>''your-action''));?>'', data: ({type:''original''}), success: function (data, textStatus){ $("#div1").html(data); } });
ajax – 与cakephp的简单json响应
但是我没有回复内容.只有200个成功.从阅读文档我的印象是,如果我传递一些json,那么responseHandler将返回json作为响应.
不确定我错过了什么.
数据被传递
var neworderSer = $(this).sortable("serialize");
这使
item[]=4&item[]=3&item[]=6&item[]=5&item[]=7
appController.PHP
public $components = array( 'DebugKit.Toolbar','Search.Prg','Session','Auth','RequestHandler' );
index.ctp
$.ajax({ url: "/btstadmin/pages/reorder",type: "post",dataType:"json",data: neworderSer,success: function(Feedback) { notify('Reordered pages'); },error: function(e) { notify('Reordered pages Failed',{ status: 'error' }); } });
PagesController.PHP
public function reorder() { $this->request->onlyAllow('ajax'); $data = $this->request->data; $this->autoRender = false; $this->set('_serialize','data'); }
更新:
我现在已经将以下内容添加到routes.PHP中
Router::parseExtensions('json','xml');
我已将控制器更新为
$data = $this->request->data; $this->set("status","OK"); $this->set("message","You are good"); $this->set("content",$data); $this->set("_serialize",array("status","message","content"));
现在一切都很完美.
解决方法
为了使请求处理程序能够选择正确的视图,您需要发送相应的Accept标头(application / json),或者在您的情况下提供扩展名.json.并且为了完全识别扩展,需要启用扩展解析.
见http://book.cakephp.org/…views.html#enabling-data-views-in-your-application
该视图仅序列化视图变量
JSON视图仅自动序列化视图变量,并且从您显示的代码看起来不像您设置了名为data的视图变量.
见http://book.cakephp.org/…views.html#using-data-views-with-the-serialize-key
需要呈现视图
除非有充分的理由,否则不应禁用auto rendering,并且在您的情况下最终也会手动调用Controller:render().目前,您的操作甚至都不会尝试渲染任何内容.
CakeRequest :: onlyAllow()用于HTTP方法
CakeRequest :: onlyAllow()(其btw是deprecated as of CakePHP 2.5)用于指定允许的HTTP方法,即GET,POST,PUT等.虽然使用任何可用的检测器(例如ajax)都可以工作,但您可能不应该依赖它.
长话短说
你的reorder()方法看起来应该更像这样:
public function reorder() { if(!$this->request->is('ajax')) { throw new BadRequestException(); } $this->set('data',$this->request->data); $this->set('_serialize','data'); }
最后,如果您不想/不能使用Accept标头,则需要将.json扩展名附加到AJAX请求的URL:
url: "/btstadmin/pages/reorder.json"
并因此在routes.PHP中启用扩展解析,如:
Router::parseExtensions('json');
PS
有关在不使用扩展名的情况下使用JSON视图的方法,请参阅Cakephp REST API remove the necessity of .format.
ajax+php+mysql 读取数据库的简单示例
这篇文章介绍的内容是关于ajax+php+mysql 读取数据库的简单示例 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
1.创建数据库
create database ajaxdemo default charset utf8;
切换到当前数据库
use ajaxdemo;
创建表并插入数据
立即学习“PHP免费学习笔记(深入)”;
CREATE TABLE `ajaxtest` ( `userid` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id', `username` varchar(50) NOT NULL COMMENT '用户名', `userpass` varchar(50) NOT NULL COMMENT '密码', `userage` int(11) NOT NULL COMMENT '年龄', `usersex` varchar(1) NOT NULL COMMENT '性别', PRIMARY KEY (`userid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
立即学习“PHP免费学习笔记(深入)”;
立即学习“PHP免费学习笔记(深入)”;
INSERT INTO `ajaxtest` VALUES ('1', '李四', 'lisi', '15', '男'); INSERT INTO `ajaxtest` VALUES ('2', '张三', 'lisi', '20', '女'); INSERT INTO `ajaxtest` VALUES ('3', '王五', 'lisi', '25', '男'); INSERT INTO `ajaxtest` VALUES ('4', '韩梅梅', 'lisi', '25', '男'); INSERT INTO `ajaxtest` VALUES ('5', '张莉', 'lisi', '25', '女');
立即学习“PHP免费学习笔记(深入)”;
2.创建index.php,查询数据库中的信息并展示给用户
立即学习“PHP免费学习笔记(深入)”;
<html> <head> <meta charset="utf-8"/> <title>ajax实例</title> <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <p> <p> <p> Ajax实例 </p> <p> <formrole="search" name="myform"> <p> <label> 年龄:<input type="number"placeholder="Age" name="userage" id='userage'/> </label> </p> <selectid="usersex" name="usersex"> <option value="男">男</option> <option value="女">女</option> </select> <button type="button"onclick='ajaxFunction()'>提交</button> </form> <tableid="ajaxp"></table> <p>SQL语句:<pre id="sql">
立即学习“PHP免费学习笔记(深入)”;
3.创建ajaxtest.php来响应index.php的请求
<?php error_reporting(0);//不显示警告信息 $dbhost="localhost"; $dbuser="root"; $dbpass="root"; $dbname="ajaxdemo"; $mysqli=new mysqli($dbhost,$dbuser,$dbpass,$dbname); $mysqli->query("SET NAMES 'UTF8' "); $userage=$_GET['userage']; $usersex=$_GET['usersex']; $userage=$mysqli->real_escape_string($userage); $usersex=$mysqli->real_escape_string($usersex); $query="select * from ajaxtest where usersex='$usersex'"; if(is_numeric($userage)) { $query .="AND userage <= $userage;"; } $qry_result=$mysqli->query($query); if($qry_result->num_rows==0) { echo json_encode(['data'=>'<h2>未找到符合条件的记录</h2>','sql'=>$query]); return ; } $display_string ="<tr>"; $display_string .="<td>用户名</td>"; $display_string .="<td>年龄</td>"; $display_string .="<td>性别</td>"; $display_string .="</tr>"; //insert a new row in the table for each person returned while($row=mysqli_fetch_object($qry_result)){ $display_string.="<tr>"; $display_string.="<td>$row->username</td>"; $display_string.="<td>$row->userage</td>"; $display_string.="<td>$row->usersex</td>"; $display_string.="</tr>"; } echo json_encode(['data'=>$display_string,'sql'=>$query]);//返回json数据格式 ?>
结果:
相关推荐:
PHP读取数据库并按照中文名称进行排序实现代码_PHP教程
以上就是ajax+php+mysql 读取数据库的简单示例 的详细内容,更多请关注php中文网其它相关文章!
Ajax示例
Cakephp $this-> layout =’ajax’
在我的view1.ctp中,我使用jquery创建了一个对话框.内容将通过jquery.ajax()从view2.ctp获取.我创建了html类,id和所有类似于view1.ctp.
我收到的内容还可以.问题是我在view2.ctp中声明的id和类不起作用.总之,我得到一个空的对话框设计.
关于如何解决这个问题的任何想法?先感谢您.干杯!
在我的view1.ctp中:
<div id="thisDialog"> <div id="content"> </div> </div> <script> jQuery('.test_Box').live('click',function(){ jQuery('#content').empty(); jQuery.ajax({ async:false,url: '/controller1/view2/'+id //url pointing to my 1controller.PHP success:function(data){ jQuery('#content').append(data); } }); jQuery('#thisDialog').dialog('open'); }); </script>
这是controller1.PHP
function view2($id) { $this->layout = 'ajax'; $query = $this->Model->find('all') //somequery here }
这是view2.ctp
<div> <div> <h5>Title here</h5> </div> <div> <table> <tr> <td></td> <td></td> </tr> <tr> <td>Field content1 here</td> <td>Fields content2 here</td> </tr> </table> </div> </div>
解决方法
关于Cakephp 2.3.0的简单ajax示例和ajax php教程的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于ajax – 与cakephp的简单json响应、ajax+php+mysql 读取数据库的简单示例、Ajax示例、Cakephp $this-> layout =’ajax’的相关知识,请在本站寻找。
本文标签: