作者: admin

  • php判断是否点击按钮提交数据

    php button 判断 按钮 是否点击 按钮

    如何判断php是否点击了按钮提交数据,如果学习js的都知道要利用js来判断一个按钮是否点击了,只要获取dom元素并添加click事件即可。

    但php的不一样,目前我知道的就2种方法:

     

    1,利用表单提交,如:

    <form method="post" name="login" action="login.php?click=yes">
       <button>点击</button>
    </form>
    当点击按钮的时候会向login.php传递一个参数click=yes
    
    
    //login.php页面代码
    if( $_GET['click']=='yes' ){  //这样可以判断按钮是否被点击了
       //按钮被点击执行这里的代码
    }

     

    2,以上方法是比较常用的点击的时候按钮会带有一些默认行为那就是页面刷新一次才能提交数据,这里介绍第二种方法利用ajax

    //a.php
    session_start();
    if( $_SESSION['loginusername']=='yes' ){ //这样可以判断按钮是否被点击了
      //按钮被点击执行这里的代码
    }
    <button>点击</button>
    
    
    
    
    //js代码部分
    $('button').click(function(){ 
     
     $.ajax({
       type:"post", //用POST方式获取信息
       url:"b.php",// 向此文件申请获取信息要求
       data:{click:'yes'},//向URL地址发送所要发送的信息
     });
     
     return false; //阻止默认跳转的行为,页面不会刷新
     });
    
    
    
    //b.php
    session_start();
    $_SESSION['loginusername']=$_POST['click'];
    
    

    这里简单说下思路:

    为提交数据的按钮绑定一个click事件,事件是ajax,ajax向像b.php请求信息,并且为b.php带{click:’yes’}参数,b.php获取到{click:’yes’}参数赋值给了$_SESSION这样任意页面都能获取到值了

     

  • 什么是php资源句柄

    就像是我们生活中炒菜用的锅,我们要使用锅的时候总不能用双手去拿着锅炒菜吧,所以锅有一个锅把,方便我们去操作锅。

     

    php资源句柄就像是我们说的锅把,我们在获取数据的时候例如:

    mysql_query("SELECT * FROM liuyan");  //打印出来的就是一个资源句柄

    句柄也是这个道理,打开一个资源,这个资源特别大,可能是个好几G的文件,PHP不能操作的,因为PHP可用内存也就几十M。这样就需要一个句柄,这个句柄说白了就是刚才举例中的锅把,直接指向那个资源,传递的时候只需要传递这个不到1K的句柄,我们要操作大数据的时候必须要通过句柄。

     

     

     

     

  • php表单提交数据后仍然保留数据填写之前的信息

    php 提交 表单 数据 保留

    要实现这效果方法好很多但推荐使用ajax,原理是:

    1,首先阻止提交按钮的默认跳转行为,不跳转就是不用刷新所以之前填写的资料依然保存。

    2,用ajax实现不刷新提交数据可以参考:https://sdeno.com/?p=4386 中的ajax部分

  • 解决:php刷新页面重复提交信息数据以及ajax不刷新提交数据

    php ajax php 表单 提交 重复 不刷新 数据

    我们提交数据一般用post或者get方式提交的时候在重新刷新一次页面就在重复提交了一次上次的数据。

    在我们使用get方式提交数据时候还好,可以把URL后面的参数删了在刷新一次,但使用post提交数据时候并不带任何参数即使刷新页面也是在不断的重复提交上次的数据。

    解决方法就是根据需求的不同在提交数据成功或者失败的时候,重新修改一次URL这里可以使用JS来完成例如:

     echo'<script type="text/javascript">
           window.location.href = "registered.php";
         </script>';

     

     

    还有另一种方法:

    使用ajax不刷新提交数据

     
    $('.submit').click(function(){
     
       $.ajax({
          type:"post", //用POST方式获取信息
          url:"registered.php",// 向此文件申请获取信息要求
          data:$('form').serialize(),//向URL地址发送所要发送的信息
          success:function(){
             alert('数据提交成功');
          }
     
        });
     
        return false; //阻止默认跳转的行为
     });

     

    //registered.php页面
    
    JS中的 $('form').serialize() 就是获取提交表单中的所有表单信息其中有username=xxx
    
    $username=$_POST['username'];  //这里获取数据即可