php的问题,就是我php获取前台数据有个搜索条件,然后点检索,检索通过ajax传到后台控制器,然后我怎么进行分页?

我用ajax提交了数据到后端,然后怎么在php后端判断接收到了数据。注:所有代码都是写在一个页面的
以下是问题补充:
:楼主是自学的,什么都不懂啊,来个大佬帮帮忙吧
如果你的ajax是要通过表单提交才会执行的话,那么页面一开始加载时并没有提交数据给php,所以isset是不成立的。需要点击提交让ajax执行,就没问题吧
--- 共有 1 条评论 ---
嗯,这个我知道的
你问的问题已经涉及到其它东西了,非常有探索欲,所以单独开一个给你回复,所有回复尽量用通俗容易理解的说法。
1、php代码是触发执行的,提交一次执行一次,不然那么多页面,还要连数据库,难道还返回同样的结果不成
2、你说的if类似的,是因为代码在执行时无法满足设定条件,跳过了
3、php一直有进程保持运行,你提交的时候,实际先提交给web软件,比如IIS、apache、nginx等,然后由web软件通过指定协议传输给php进程来解析、执行、返回,最后再由web软件返回给浏览器
4、什么原理,我知道一点,但是不全,你可以等php运用自如后再深入,目前你阶段有点舍本逐末
--- 共有 1 条评论 ---
大哥,你说的我基本懂了。像这种底层的东西我该去哪儿学能,看官方文档吗
如果真的很多不会,建议贴完整可直接运行的PHP代码,这样别人才可能帮你调试。
关于查看后台有没有收到请求的问题:
1.浏览器开发者工具可以直接查看,类似的fiddler之类的工具也可以
2.Apache/Nginx的access.log能看见请求情况,error.log会有错误提示
楼上的老哥,我的问题好想要从下往上看。。。
&&&&php在Http协议中,通过GET、POST、PUT、DELETE、FILE、COOKIE等接收到数据,其中通过GET、POST比较常见,然而前端ajax是在浏览器中执行的,php是在服务器中执行的;两者之间是不存在任何连接的,所以php接收到的数据应该包括身份认证信息和需要处理的数据。
&&&&正常逻辑并不是在后端判断是否收到信息,在是php在执行后返回一个状态或者特定的结果给ajax,告诉ajax已经收到并处理完信息
& & 任何浏览器语言与服务端语言都是如此,区别就是现在技术越来越完善,可以做到更好的地步,让前端和后端时刻保持连接
--- 共有 3 条评论 ---
2、如果我把php程序单独写在一个页面里,当我前端页面有数据提交过去的时候,这个页面就会自动执行吗?这是什么原理呢?
: 而且页面已经加载完了,php是怎么检测到前台有数据提交过来了,它是一直都在监测还是隔断时间就运行一遍啊
大哥,小弟还有一个问题,php程序到底是什么时候会执行?1、把php代码和html代码写在一个页面里,当浏览器请求这个页面的时候服务器就会先执行php代码,然后把结果和html代码发送给浏览器。如果这段php代码像上面一样包在if(isset($_Get("sub“)))这样一个条件语句里了,那他就不会执行了。当我在浏览器点击提交按钮后,这时那段php才会执行,这不就相当于重新加载了一次页面吗。
作为世界顶级语言的php,我想应该有很多好心的phper帮助你才对,我是javaer,爱莫能助,在此只能帮你顶一下了
--- 共有 1 条评论 ---
你这话怎么有点怪啊
if(isset($_GET["k"])){
if(isset($_GET["sub"])){
还有这个地方,第一个if语句执行后已经给$k赋值为1了,为什么第二个if语句里输出来还是0啊?
--- 共有 6 条评论 ---
: 嗯,已经弄懂了,谢谢回复
嗯嗯,我也是想说第二个if那块有点问题,那你现在解决了吗?我php学的浅,现在都忘了
: PHP里的变量都是每次执行这个脚本的时候初始化的,没有持久化层(文件/数据库),结果就是常说的没保存。。。
: 就是1啊。。我想我这个肯定有根本性的逻辑错误。。。因为两个if执行的时间不一样,第一个if执行的结果并没有保留到第二次执行的时候。是不是每次提交数据,包含这段程序的页面就会重新加载一次啊。
你把第二个if先注释了,看看得到的k是什么?php后台怎么获取ajax方法从前台传的数据?
比如说,登录验证,当ajax通过post或者get方式将用户名和密码传到后台,php后台怎么知道有没有接收成功?我用var_dump($_POST)没有显示出数据,但是浏览器控制台中的响应里有传过来的数据,应该是有传送到数据,可是我不知道php后台怎么验证数据是否接收到,用var_dump($_POST),echo $_POST['username']
都不显示 ,求助大神!
这样的,使用ajax进行后台访问数据无法直接从浏览器上或者直接看到,解决方式可以尝试1、在你接收ajax请求的php代码中,将数据写到指定的文件中一边查看2、在你接收ajax请求的php代码中,将数据在返回给前端即可,在浏览器里可以看见
你还没有登录,请先登录或注册慕课网帐号
看下是get还是post、put之类的在进行打印,如果$_POST没有接收到参数,可以看下前台是不是post传递过来的,一般都是接受得到的。可以使用curl来自己模拟post请求试下
你还没有登录,请先登录或注册慕课网帐号
ajax请求有两种方式一种是get一种是post,看你自己用的哪种就用哪种方式接就行了
你还没有登录,请先登录或注册慕课网帐号
那是你的ajax跳转到别的页面了,别找了,设置button的点击事件为function(e){e.preventDefault()}
你还没有登录,请先登录或注册慕课网帐号
57991人关注
22821人关注
35955人关注
Copyright (C) 2018 imooc.com All Rights Reserved | 京ICP备 号-11怎么用Thinkphp+jquery实现ajax的提交、接收处理和返回? - ThinkPHP框架
jquery中有个$.ajax的方法,
thinkphp中有个ajaxReturn的方法,
还有jquery.form.js的表单插件中有个ajaxForm和ajaxSubmit的方法,
这些个都怎么用啊,怎么实现ajax的页面无刷新啊?
回答的时候着重回答下边三个问题哈:
(1)怎样做才算是用ajax提交了,
(2)怎样做才算是用ajax返回了,
(3)怎样做才算是用ajax接收了?
望大侠们不吝赐教~
注:$.ajax我大概知道怎么用:就是选择提交方式post或者get,选择提交页面,选择success的回调函数来显示数据,这几个是必选的。——所以不要有太大压力哈 我不是什么都不懂哈O(∩_∩)O~$.ajax({
&&&&&&&&&&&&&&type:&post&,
&&&&&&&&&&&&&&url:&check.php&,
&&&&&&&&&&&&&&data:&id=&+new&Date()+&&city=&+$(&#city&).val(),//可有可无
&&&&&&&&&&&&&&dataType:&html&,//可有可无
&&&&&&&&&&&&&&error:function(){//可有可无
&&&&&&&&&&&&&&&&&&alert(&当前ajax操作出错!&);
&&&&&&&&&&&&&&},
&&&&&&&&&&&&&&success:function(msg){
&&&&&&&&&&&&&&&&&&$(&#mySpan&).html(msg);
&&&&&&&&&&&&&&}
&&&&&&&&&&});①还有一点就是提交的时候用a标签调用js函数提交可不可以?
②$('#div')里边如果要加模板的变量该怎么加,就是div后边拼接个id号。
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。赞助商推荐():
想学到点真东西?
如果你有1~3年前端开发经验,不妨
想高薪入职阿里?
想要免费一对一编程辅导?Ajax传递二维数组至后台ThinkPHP控制器
时间: 09:52:06
&&&& 阅读:372
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&最近为单位做了专家库的小程序,没个专家有擅长的领域,这是通过一个checkbox来提交和编辑的。因为不想刷新页面,使用Ajax异步传输。
首先从专业数据表中读取所有的专业,并且生成checkbox:
$(document).ready(function(){
  $.ajax({
  type:"POST",
url:"http://localhost/yibu/index.php/Home/Expertadd/expertecho",//对应控制器读取专业列表
success:function(result){
  var data = $.parseJSON(result);
var len =data.
var listHtml="";
for (var i = 0; i & i++) {//循环将专业并入checkbox
  listHtml+="&input type=‘checkbox‘ id=‘"+data[i]["major"]+"‘ name=‘major‘ value=‘"+data[i]["id"]+"‘/&"+data[i]["major"]+"";
listHtml ="&tr&&td colspan=‘2‘&&div class=‘divcheck‘&"+listHtml+"&/div&&/td&&/tr&";
$(‘#myTable‘).append(listHtml)
这段代码不仅生成了checkbox,并且将专业名称与对应的专业ID分别存储到checkbox中。
接下来要对checkbox状态进行判断:
var boolMajor = cheMajor.is(‘:checked‘)//checkbox状态判断
如果checkbox处于选中状态,进行遍历取值,并存储到二维数组:
for (var i = 0; i & cheMajor. i++) {//遍历checkbox
if(cheMajor[i].checked){
  dataMajor.push({"majorid":cheMajor[i].value,"major":cheMajor[i].id});//专业能力数组赋值
二维数组无法直接传递到后台ThinkPHP的控制器,需要进行JSON序列化:
var jsonMajor = JSON.stringify(dataMajor);//专业能力数组用JSON序列化
序列化以后可以直接调用Ajax传递数据了:
$.ajax({//调用Ajax
  type:"POST",
url:"&{:U(‘Expertadd/add‘)}&",
data:{‘dataExpert‘:dataExpert,‘jsonMajor‘:jsonMajor},//传递数据到控制器
success:function(result){
  if(result=="success"){
    var appendDiv=‘&div id="appendDiv" class="alert green_alert"&&p&专家信息写入成功!&/p&&/div&‘;
  $("#clearfix").after(appendDiv);
  }  }
后台存入数据,需要将JSON字符串反序列化,注意加入参数&true&。这是为了强制转换为数组。
$major=D("major");//定位数据表
$jsonMajor=$_POST["jsonMajor"];//接收JSON序列
$arrMajor = json_decode($jsonMajor,true);//专业能力数组反序列化
$len = count($arrMajor);
for($i=0;$i&$len;$i++){
  $arrMajor[$i]["expertid"]=$resultExpert;//专业能力数组加入对应专家ID
$resultMajor = $major-&addall($arrMajor);
if($resultExpert&0 && $resultMajor&0){//两张表均写入成功输入信息给前端
  echo "success";
JSON字符串反序列化以后,又进行了进一步加工,加入了对应的专家ID。
至此,录入的专家信息都有了对应的专业领域。
效果如下,首先是前台界面:
插入的两张数据表,专家信息表:
专家对应的专业能力表:
数据保存成功。标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/ichu/p/4955215.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!

我要回帖

更多关于 php 前台遍历 的文章

 

随机推荐