做了一个订货网页,本来是form表单提交到php页面,把接收的数据处理下,给订货的人和店家都发个邮件,就结束了。
但是客户和我们头商量了,说只要一个页面,不要跳转。就变成了这样的流程:
1。点订货按钮,用js做数据格式检查。2。检查没问题了,confirm一下问是不是确定要订货。3。确定订货后js调用php的发送邮件(这里就不知道php脚本怎么去获得输入的数据了,js用的事document.all.textboxname获取的。也搞不清怎么去掉用php的东西)4。php的处理之后再次用js显示个弹出窗口。或者反过来:
1。点订货按钮,PHP的onclick(有这样的东西吗)里面调用js检查数据,再confirm2。php脚本发送邮件,还是不知道怎么获得输入的表单数据3。发完了再调用js弹出窗口。写的有点乱,还请各位大哥指点。
另外,这个页面不让用submit,因为输入的数据都得留着。

解决方案 »

  1.   

    js調用PHP
    window.location.href='check.php';
    php調用JS
    echo "<script language='javascript'>alert('Ok');</script>";
      

  2.   

    这个页面不让用submit,因为输入的数据都得留着。 用ajax可以實現你的要求
      

  3.   

    我也这么觉得,可惜我没弄过ajax,我们头都没做过网页,临时让我帮忙的
      

  4.   


    那樣你還是一個動作提交一次好,也別想什麼東西了。要在頁面做JS檢查就在submit按鈕中寫onclick事件,如:<input type='submit' name='ADD' value='Save' Onclick="return add();">
    function add()
    {
    if(document.form.Name.value=='')
    {
    alert('名字不能為空');
    return false;
    }
    if(confirm('是否提交'))
    return true;
    return false;
    }
    確定後就提交到你form action指向的php頁面
    php完成動作後就:
    echo " <script language='javascript'>window.location.href='check.php'; </script>"; 
      

  5.   

    我也是这么想的阿,但是客户不希望这么做~
    您的意思是说php的操作完成以后,再跳转回这个页面吗?但是这么做的话回到这么页面还需要做一些js的提示,弹窗什么的,这该怎么办呢?我还有一个想法是js检查完数据确认后,showmodaldialog,在这个模态窗口发送php邮件,但是我不知道showmodaldialog传
    的参数用php怎么去接收~
      

  6.   

    把表单提交指向一个 本页里看不到的 iframe ,数据返回后可以直接执行 js或调用 父页JS(因为当前是iframe页)parent.fn();<form target="myIframe" action="" onsubmit="return myCheck()" method="">
    <input type="submit" value="submit" />
    </form><iframe style="height:0" name="myIframe"></iframe>
      

  7.   

    showmodaldialog也可以传parent的window作为参数的就是不知道怎么接。我想知道提交到iframe里面,页面会刷新吗?
    我原来直接提交到本页面,就刷新了。。
      

  8.   

    幫人幫到底了onclick調用彈出窗口:
    function popUp(id)
    {
    var width = 260;
    var height = 180; var sFeatures='dialogWidth: '+ width + 'px; dialogHeight: ' + height + 'px; center: yes; status: no; help: no; scroll: no;';
    window.showModalDialog('./popup_iframe.php?id='+id,window.self,sFeatures);
    update.location.href('./check.php?id='+id);

    return;
    }
    html套入如下:
    <iframe width='0' height='0' src='check.php' name='update'></iframe>
    這個可以實現在處理完彈出的ModalDialog後進一步執行check.php,更多參數可以由getElementById獲得
      

  9.   

    谢谢,明天上班再研究
    不过我似乎需要用phpscript来获得参数,因为邮件发送都是用phpscript写的
      

  10.   

    javascript -> 检测数据 -> ajax post表单数据至php页面->php $_POST接收post过来的数据->发邮件。 
      

  11.   

    我感觉你把问题想的复杂了。
    1,验证数据的格式,这个通过了。
    2。确认是不是提<script type="text/javascript" language="javascript"> <!-- function confirmAct() 

        if(订单数据正确)
     {
        if(confirm('确定要执行此操作吗?')) 
        { 
            return true; 
        }     return false; 
     }
     else
      {
         格式不正确的订单数据
      }} 
    </script> 
    <a href="operate.php?mod=user&act=delete&id=564" onclick="return confirmAct();">执行操作</a> 
      

  12.   

    不是我想的复杂了,是我们头要这么干啊。。
    12#的 ajax post表单数据至php页面我感觉可行,不用刷新,因为发送完邮件还要弹出个窗口,
    让用户选择是清除一部分输入数据,还是返回上个页面,还是打开一个新的订货窗口。
      

  13.   

    忘记说了,偶不会用ajax,不知道现学来得及吗?
      

  14.   

    用AJAX吧,在JS里可以用responseText得到php传回的数据嘛!
    ajax不怎么复杂,就那么几个函数和属性。
      

  15.   

    来得及,基本上都是javascript这边的活,不行就网上搜一搜,copy & paste.
      

  16.   

    就是说因为ajax是不刷新提交的,所以提交到php处理发送邮件后,得到一个返回值。
    这时候就知道发送成功了,我再弹出提示框是吗?ajax果然强大阿
      

  17.   

    我这个要做的就是无刷新提交阿,因为我php发送邮件之后还得对订货页面做一些处理。
    我找到的下面这个示例还是刷新了。
    您写的那个iframe和这个有什么不同吗?<?php   
      print_r($_POST);   
      ?>   
      <script   language=javascript>   
      String.prototype.lenb   =   function()   {   
          return   this.replace(/[^\x00-\xff]/g,"**").length;   
      }   
        
      function   foo(form)   {   
       form.sen.value   =   form.sendername.value.lenb();             
          return   true   
      }   
      </script>   
      <form   method=post   onsubmit="return   foo(this)">   
      <input   type=hidden   name=sen>   
      <input   type=text   name=sendername>   
      <input   type=submit>   
      </form>   
      

  18.   

    终于看完了帖子和回帖。这个要求从根本上说是AJAX的处理方式……大概流程:1. JS: 获取所有的表单数据;
    2. JS:判断数据合法性和合理性;通过json打包发给后台PHP;
    3. PHP: 进一步判断数据,进行后台处理,返回状态信息给前台JS;
    4. JS: 根据返回信息判断处理是否成功并提示。如果你对AJAX没有基础,可以直接从现成的AJAX封装入手,比如jQuery。我的站点中有一些例子可以参考:www.rsywx.net/jquery/index.html
      

  19.   

    sorry,地址给错了:http://www.rsywx.net/jquery/demos/index.html
      

  20.   

    我也觉得是ajax比较好,但是以前都没弄过,所以想尝试有没有其他的方式来实现。恩,揭帖学习去了