本帖最后由 Eason_____________ 于 2013-07-25 11:25:44 编辑

解决方案 »

  1.   

    index.php 代码就只有这些?
    是不是执行后又刷新了?跳转了?
      

  2.   

    还有就是js传过来的  title 和 content 
      

  3.   


    如果判断一下index.phpif($_GET['title']!=''){
    $sql="insert into json_bbs values('','".$gettitle."','".$getcontent."','".$i->iamgePath."','".time()."','')";
    mysql_query($sql);
    }
    在执行的话 就只插入一条数据了,但是获取不到$i->iamgePath的值,$i->iamgePath就为空。不判断的话 是插入以下两条数据:
    id  title  content  images                 time         uid  
    127 aaa    yyyyy                           1374722311   0 
    128                 2013_7_25_11_18_32.jpg 1374722312   0 
      

  4.   

    还有就是js传过来的  title 和 content js传来的title和content?怎么传递的
    会不会js传递时执行了脚本,提交上传图片时又执行了insert。所以是两条记录?
      

  5.   


    如果判断一下index.phpif($_GET['title']!=''){
    $sql="insert into json_bbs values('','".$gettitle."','".$getcontent."','".$i->iamgePath."','".time()."','')";
    mysql_query($sql);
    }
    在执行的话 就只插入一条数据了,但是获取不到$i->iamgePath的值,$i->iamgePath就为空。不判断的话 是插入以下两条数据:
    id  title  content  images                 time         uid  
    127 aaa    yyyyy                           1374722311   0 
    128                 2013_7_25_11_18_32.jpg 1374722312   0 
    你这个一看就是2个不同操作执行得到的插入
    你这2个动作,一个应该是更新动作,应该说是后来执行的那个动作只能是更新动作,不能是插入动作所以你本身逻辑上出现了问题,插入2条数据属于正常的
      

  6.   

    还有就是js传过来的  title 和 content js传来的title和content?怎么传递的
    会不会js传递时执行了脚本,提交上传图片时又执行了insert。所以是两条记录?json传递的
      

  7.   


    斑竹说表单,你给数据库。。
    是表单部分的代码和js部分的代码。ajax?
    传递过来不就执行insert了么?
    提交表单又执行一次。
    不就刚好两条数据么
      

  8.   


    <!DOCTYPE html>
    <html class="um landscape min-width-240px min-width-320px min-width-480px min-width-768px min-width-1024px">
      <head>
        <title>
        </title>
        <meta charset="utf-8">
        <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
        <link rel="stylesheet" href="css/ui-input.css">    <link rel="stylesheet" href="css/ui-btn.css">
        <link rel="stylesheet" href="css/ui-img.css">
        <link rel="stylesheet" href="css/ui-list.css">
        <link rel="stylesheet" href="css/ui-res.css">
        <link rel="stylesheet" href="css/ui-fold.css">
        <link rel="stylesheet" href="css/ui-base.css">
        <link rel="stylesheet" href="css/ui-box.css">
        <link rel="stylesheet" href="css/ui-color.css">
        <script src="js/zy_anim.js">
        </script>
        <script src="js/zy_control.js">
        </script>
      <script src="js/zy_tmpl.js">
        </script>
    <script src="js/zy_click.js">
        </script>
    <script src="js/zy_json.js">
        </script>
        </head>
      
    <body class="um-vp" ontouchstart>
    <div class="btm" id="yinying" style="display:none"></div>
    <div class="c-wh" id="fb_content">          <!--文本开始-->
        <div class="ub t-bla ulab">  
        <div class="ub-f1 c-wh uba uc-a1 b-gra us-i uinput uinn4" style="margin-top:5%">  
        <input placeholder="标题..."  type="text" name="title" class="uc-a1" id="fb-title">   
        </div>
        </div>
        <!--文本结束-->    <!--文本开始-->
        <div class="ub t-bla ulab fb-btn">  
        <div class="ub-f1 c-wh uba uc-a1 b-gra us-i uinput uinn4">  
        <textarea  placeholder="请输入内容"  name="content" rows="7" id="fb-content" ></textarea>
        </div>
        </div>
        <!--文本结束-->
        <div style=" display:none; width:20%; height:15%; margin-top:5%; left:1%" id="show_img">
         <span class="del" onClick="del()">x</span>
            <img style="width:100%; height:100%;display:block; border:1px solid #CCC;" src="" id="showPic" />        
        </div> <!--按钮开始-->
        <div ontouchstart="zy_touch('btn-act')" class="btn uba b-bla uinn5 c-blu1 c-m2 uc-a1 t-wh img-add"  onclick="picSeclet();" id="selectPic">添加图片</div>
    <!--按钮结束-->
        
    <!--按钮开始-->
        <div ontouchstart="zy_touch('btn-act')" class="btn uba b-bla uinn5 c-blu1 c-m2 uc-a1 t-wh img-add" onClick="upload()">发布</div>
    <!--按钮结束-->    <div style="position:absolute; bottom:0; width:100%; z-index:100; display:none" id="divPic"> 
                <div ontouchstart="zy_touch('c-m2');" data-role="button" onclick="uexImageBrowser.pick();" class="btn uba b-bla uinn5 c-bla c-m1 uc-a1 t-wh img-add1"> 
                        <span class="ui-btn-inner ui-btn-corner-all"> 
                        <span class="ui-btn-text t-wh">从手机相册选择</span> 
                        </span>
                </div> 
                <div ontouchstart="zy_touch('c-m2');" data-role="button" onclick="uexCamera.open();" class="btn uba b-bla uinn5 c-bla c-m1 uc-a1 t-wh img-add1"> 
                        <span class="ui-btn-inner ui-btn-corner-all"> 
                        <span class="ui-btn-text t-wh">拍照</span> 
                        </span>
                </div>
                <div ontouchstart="zy_touch('c-m2');" data-role="button" onclick="picClose();" class="btn uba b-bla uinn5 c-bla c-m1 uc-a1 t-wh img-add1"> 
                        <span class="ui-btn-inner ui-btn-corner-all"> 
                        <span class="ui-btn-text t-wh">取消</span> 
                        </span>
                </div>
        </div></div>
    </body>
    <script>
    zy_init();
    window.uexOnload=function(type)
    {
    if(!type){
    uexWindow.setBounce("1");
    uexWindow.showBounceView("0","#FFF","0");
    uexWindow.showBounceView("1","#FFF","0");
    }
    }
            var uploadHttp = "http://www.huayan.cd/json/bbs/index.php";
            function setLog(msg){
                    document.getElementById("msgid").innerHTML = msg;
            }
            function upload(){
    if($$("fb-title").value=='' || $$("fb-content").value==''){
    alert("标题或内容不能为空");
    }else{
    uexUploaderMgr.createUploader(1,uploadHttp);
    var fbtitle = $$("fb-title").value;
    var fbcontent = $$("fb-content").value;
    var url = 'http://localhost/json/bbs/index.php?title='+fbtitle+'&content='+fbcontent;
    $.getJSON(url,function(data){
    alert(data.title);
    alert(data.content);
    alert(data.time);
    alert(data.time1);
    });
    }
            }
            function picSeclet(){
                    document.getElementById("yinying").style.display = "block";
                    document.getElementById("divPic").style.display = "block";
            }
            function picClose(){
                    document.getElementById("yinying").style.display = "none";
                    document.getElementById("divPic").style.display = "none";
            }
            function del(){
                    document.getElementById("show_img").style.display = "none";
                    document.getElementById("showPic").src = "";
            }
            var upload_image_url = "";
            window.uexOnload = function(){
                    uexCamera.cbOpen = function(opCode, dataType, data){
                            upload_image_url = data;
                            document.getElementById("showPic").src = data;
                            document.getElementById("show_img").style.display = "block";
                            document.getElementById("divPic").style.display = "none";
    document.getElementById("yinying").style.display = "none";
                    }

                    uexWidgetOne.cbError = function(opCode, errorCode, errorInfo){
                            setLog(errorInfo);
                    }
                    
                    uexImageBrowser.cbPick=function (opCode,dataType,data){
            if(dataType==0){
    upload_image_url = data;
                   document.getElementById("showPic").src = data;
    document.getElementById("show_img").style.display = "block";
    document.getElementById("yinying").style.display = "none";
    document.getElementById("divPic").style.display = "none";
            }
               }

                    uexUploaderMgr.cbCreateUploader =function(opCode,dataType,data){
                            if(data == 0){        
                                    uexUploaderMgr.uploadFile(1,upload_image_url,"filename",4);        
                                    uexWindow.toast(1,5,"图片上传中...",0);
                            }else{
                            }
                            
                    }

                    uexUploaderMgr.onStatus = function(opCode,fileSize,percent,serverPath,status){
                            switch (status) {
                                            case 0:
                                                    break;
                                            case 1:
                                                    uexWindow.closeToast();//关闭提示消息框
                                                    uexWindow.toast(0,5,"发布成功!",2000);
                                                    //uexWindow.closeToast();//关闭提示消息框
                                                    uexUploaderMgr.closeUploader(1);
                                                    break;
                                            case 2:
                                                    uexWindow.closeToast();//关闭提示消息框
                                                    uexWindow.toast(0,5,"出错啦~",2000);
                                                    uexUploaderMgr.closeUploader(1);
                                                    break;                        }
                            
                    }
            }
    </script>
    </html>
      

  9.   


    斑竹说表单,你给数据库。。
    是表单部分的代码和js部分的代码。ajax?
    传递过来不就执行insert了么?
    提交表单又执行一次。
    不就刚好两条数据么如果我判断一下 就是 if($_GET["title"]!=''){}
    就执行了一次。但是插入的数据 $i->iamgePath的值就为空 这个是怎么回事?
      

  10.   

    嗯 这是我用appcan做的手机app.
      

  11.   


    现在插入两条的问题解决了  就是插入的时候 获取不到$i->iamgePath的值。 
    但是当insert 是两条的时候 $i->iamgePath就会有。
      

  12.   

    这是在提交文字
    105 var url = 'http://localhost/json/bbs/index.php?title='+fbtitle+'&content='+fbcontent;
    106 $.getJSON(url,function(data){这是在提交文件
    152 uexUploaderMgr.uploadFile(1,upload_image_url,"filename",4);        虽然在文本提交前就启动了文件提交
    102 uexUploaderMgr.createUploader(1,uploadHttp);但一般文件上传总要慢于文本提交,所以你能先收到 get 数据,后收到 上传文件
    但如果情况恰恰相反呢?
      

  13.   


    现在插入两条的问题解决了  就是插入的时候 获取不到$i->iamgePath的值。 
    但是当insert 是两条的时候 $i->iamgePath就会有。
    给你一个思路和建议,其实不少网站也在用,就是:
    上图图片部分用iframe,在ajax提交的是时候先执行上图图片部分,然后得到返回正常的图片地址(这里还不插入数据库,纯粹上传图片)以后再执行再执行文字表单部分,这时候图片地址是用一个参数传,这样就可以和文字一起插入数据库了,也就只有一条数据了
      

  14.   


    现在插入两条的问题解决了  就是插入的时候 获取不到$i->iamgePath的值。 
    但是当insert 是两条的时候 $i->iamgePath就会有。
    给你一个思路和建议,其实不少网站也在用,就是:
    上图图片部分用iframe,在ajax提交的是时候先执行上图图片部分,然后得到返回正常的图片地址(这里还不插入数据库,纯粹上传图片)以后再执行再执行文字表单部分,这时候图片地址是用一个参数传,这样就可以和文字一起插入数据库了,也就只有一条数据了谢谢两位版主给的思路。 我在试一试