用户上传的xls文件后,先读取其中的内容到数组中$aData;然后显示在页面中。
现在希望添加一个功能,就是两个按钮类似的东西:"确认" "放弃"
在读取文件前
mysql_query('BEGIN');读取后录入数据库中;并将内容显示在页面上,
如果用户点击确定则执行
mysql_query('COMMIT');如果点击放弃则
mysql_query('ROLLBACK');就这个验证的功能,不知道怎么实现。用button的onclick吗?怎么获得返回值呢?或是有其它好的方法?不希望跳转到下一个页面再读取一次文件,因为内容可能会很多很花时间哈!

解决方案 »

  1.   


    <?php
    //test.php
    if(isset($_GET['commit'])){
    $res1 = mysql_query('COMMIT');
    }
    if(isset($_GET['rollback'])){
    $res2 = mysql_query('ROLLBACK');
    }
    ?>
    <?php if(!empty($res1)){ ?>
    <table>COMMIT</table>
    <?php } ?>
    <?php if(!empty($res2)){ ?>
    <table>ROLLBACK</table>
    <?php } ?>
      <form name="form" action="" method="post">
      <input type="button" name="commit" value="确认" onclick="a()"/>
      <input type="button" name="rollback" value="放弃" onclick="b()"/>
      </form>
    <script language="JavaScript" type="text/javascript">
    function a(){
    document.form.action="test.php?commit=ok";
    document.form.submit();
    }
    function a(){
    document.form.action="test.php?rollback=ok";
    document.form.submit();
    }
    </script>
      

  2.   

    方法错了,你把mysql的事务分拆给了两次请求,肯定行不通的
    你需要实现的效果是啥?
      

  3.   

    <form action='' onsubmit="subCheck()">
    ...function subCheck(){
    var nm = document.getElementById("nameTest");
    if(nm.value!="")
    return true;//返回true才提交
    return false;
    }
      

  4.   

    这个相当于是跳转后,能不能不用跳转就可以获取到onclick的值?比如<input type="button" name="commit" value="确认" onclick="a()"/>
    ...
    <?php
    if(value)$sql = "COMMIT";
    else $sql = "ROLLBACK";mysql_qeury($sql);?>这个onclick的值怎么传给value?
      

  5.   

    不需要跳转的话那就用ajax请求服务器吧。
      

  6.   

    你用事务做这个。
    人才啊
    confirm js的 确认 取消
    确认就发条信息到后台 插入数据
    不刷新 ajax 传数据
      

  7.   

    一个事务不要中间隔断,分两次去执行
    过程应该是客户ajax提交数据-->服务器判断数据合法?-->提示客户端确认?-->用事务(需要用事务的话)提交到数据库
      

  8.   

    呵呵,那怎么做呢?难不成提交个table上去,岂不是更麻烦吗?数据是从xls中获取的,直接用$data读取到的二维数组不是更简单些吗?我就是希望在数据录入时,先显示一个二维的数据table给操作人员,操作人员确认后才commit一下。
      

  9.   

    前端onclick后显示等待画面,ajax提交数据到后端等待回应,后端验证数据合法性,合法则返回成功,不合法则返回失败,这样就行了。 前端在等待画面的时候点击取消,那么就回到正常画面,取消xmlhttp对象的reponse回调函数或者设置个全局变量,这样即便验证合法性的应答返回了也不需要给用户显示了,因为用户主动取消了验证过程。 如果收到应答的时候都没有点取消,那么就是ajax回调函数里设置点提示,恢复画面就行了。