如何正确地在PHP页面之间传递变量javascript是交互式的?

时间:2014-08-31 11:14:11

标签: javascript php jquery html

我是这个领域的新手,我目前正在开发小型电子商务网站。因此,非常感谢有人可以给我任何建议或提示,或将类似问题与此问题的答案联系起来。

我知道这个帖子很长...但是,我想尽可能准确地分享我的情况,以便人们正确理解我正在努力的方向。这就是为什么它变得很长......

我有一个流程和代码,如下所示。

而且,我在堆栈的地方是我不知道如何制作"编辑"按钮在revieworder.php页面中正常工作,而其他功能可以正常工作....

所以,我的问题是如何同时实现以下事项?

  1. 当用户在revieworder.php页面中按“编辑”按钮时,将变量从revieworder.php传递到options.php和deliveryinformation.php页面

  2. 用户从revieworder.php页面跳转到deliveryinformation.php页面后,国家/地区选择的javascript仍然正常工作(通过更改国家/地区,javascript返回shippingfee,从数据库检索,具体取决于同一页面中的所选国家/地区) (deliveryinformation.php)。)

  3. shippingfee,totalfee和country data在以下流程中正确传递 revieworder.php→delieveryinformation.php→revieworder.php
    revieworder.php→options.php→delieveryinformation.php→revieworder.php

  4. 你能告诉我如何存档吗?

    我的网站流量在这里;

    第1页(options.php):用户可以选择他们想要订购的产品的详细信息

    第2页(deliveryinformation.php):用户应输入交付信息,如姓名,地址等。此外,通过更改国家/地区,javascript将返回shippingfee,从DB检索,具体取决于同一页面中的所选国家/地区(deliveryinformation.php)。

    第3页(revieworder.php):用户可以查看产品和信息的详细信息以进行交付。用户可以按“编辑”按钮返回options.php页面或deliveryinformation.php页面更改输入

    代码;

    options.php

    <form name="selection" method="POST" action="deliveryinformation.php">  
      <div class="form-group">
        <select id="dropdownforoption" name="options" class="form-control">
          <option value="" select="selected">Option</option>
          <option value="babysname">Baby's name</option>
        </select>
      </div>
      <div>
        <textarea id="request" name="request" placefolder="please type your request"></textarea>
      </div>
      <div class="form-group">
        <select id="dropdownforsize" name="size" class="form-control">
          <option value="" select="selected">Size</option>
          <option value="27cm x 24cm">27cm x 24cm</option>
          <option value="specialsize">special size</option>
        </select>
      </div>
      <button id="delivery" type="submit" onclick="return onclickvalidation()">Proceed to develivery information</button>
    </form>  
    

    deliveryinformation.php

    <?php
      $options = $_POST['options'];
      $request = $_POST['request'];
      $size = $_POST['size'];
    >
    <html>
      <head>
        <script type="text/javascript" src="toppage.js"></script>
      </head>
    ...
    <form name="delivery" method="POST" action="revieworder.php">
      <input type="hidden" name="options" value="<?= $options; ?>"/>
      <input type="hidden" name="request" value="<?= $request; ?>"/>
      <input type="hidden" name="size" value="<?= $size; ?>"/>
      <div class="row">
        <div class="col-md-4">
          <p>Name</p>
          <p>Country</p>
        </div>
        <div class="col-md-4">
          <input id="name" name="name" placeholder="please type your name">Name</input>
          <div class="form-group">
            <select id="countryselection" name="country" class="form-control">
              <option value="" select="selected">Choose your country</option>
              <option value="germany" select="selected">Germany</option>
              <option value="other" select="selected">Other</option>
            </select>
          </div>
        </div>
        <div class="col-md-4">
          <div class="col-md-6">
            <p>shipping fee</p>
            <p>total fee</p>
          </div>
          <div class="col-md-6">
            <p class="shippingfee">EUR <input type="hidden" name="shippingfee" id="shippingfees2"><span id="shippingfees">xxx</span></input></p>
            <p class="totalfee">EUR <input type="hidden" name="totalfee" id="totalfees2"><span id="totalfees">xxx</span></input></p>
          </div>
        </div>
      </div>
    ..
    </html>
    

    toppage.js

    $(document).ready(function(){
    $('#countryselection').change(function(){
        if($('#countryselection').val()!='Germany'){
            var country = 'Other'
        }else{var country = 'Germany'}
    
        var priceforframe = document.delivery.framefees.value;
    
        $.ajax({ 
            type: 'GET', 
            url: '/shippingfee.php', 
            data: {'countryforshippingfee': country},
            dataType: 'json',
            success: function (data) { 
    
                document.getElementById("shippingfees2").value = data;
                $('#shippingfees').html(data);
    
                var total = data + 50;
    
                document.getElementById("totalfees2").value = total;
                $('#totalfees').html(total);
            }
        });
    }); 
    });
    
    function submitForm(action){
      document.getElementById('forminreviewpage').action = action;
      document.getElementById('forminreviewpage').submit();
    }
    

    revieworder.php

    <?php
      $options = $_POST['options'];
      $request = $_POST['request'];
      $size = $_POST['size'];
      $name = $_POST['name'];
      $country = $_POST['country'];
      $shippingfee = $_POST['shippingfee'];
      $totalfee = $_POST['totalfee'];
    ?>
    <html>
    ..
    <form id="forminreviewpage" name="confirmation" method="POST">
      <input type="hidden" name="options" value="<?= $options; ?>"/>
      <input type="hidden" name="request" value="<?= $request; ?>"/>
      <input type="hidden" name="size" value="<?= $size; ?>"/>
      <input type="hidden" name="name" value="<?= $name; ?>"/>
      <input type="hidden" name="country" value="<?= $country; ?>"/>
      <input type="hidden" name="shippingfee" value="<?= $shippingfee; ?>"/>
      <input type="hidden" name="totalfee" value="<?= $totalfee; ?>"/>
    </form>
    <div class="row">
      <div class="col-md-4">
        <div class="col-md-4">
          <p><?= $options; ?></p>
          <p><?= $request; ?></p>
          <p><?= $size; ?></p>
        </div>
        <div class="col-md-4">
          <button id="editbutton" onclick="submitForm('options.php')">Edit</button>
        </div>
      </div>
      <div class="col-md-4">
        <div class="col-md-4">
          <p><?= $name; ?></p>
          <p><?= $country; ?></p>
          <p><?= $shippingfee; ?></p>
          <p><?= $totalfee; ?></p>
        </div>
        <div class="col-md-4">
          <button id="editbutton" onclick="submitForm('deliveryinformation.php')">Edit</button>
        </div>
      </div>
      <div>
        <button id="orderbutton" onclick="submitForm('ordered.php')">Order</button></br>
      </div>
    </div>
    

    非常感谢你的帮助和最诚挚的问候,

1 个答案:

答案 0 :(得分:0)

使用会话可以使您网站中的网页访问“数据池” - 让您自己设置会话变量。这可以通过PHP轻松完成 - {3}}在W3上获取基本详细信息,网上有很多其他网站,一旦你掌握了基本概念,就可以轻松完成会话。

我不太确定你问的问题是什么。是否希望第二页自动知道用户的国家/地区?如果是这样,可以通过在上一页上分配会话变量或使用地理位置来实现 - 请参阅帮助see this page

至于问题三,实现正确的流程是一个架构问题 - 您需要确保用户访问的页面结构化只允许您想要的直通流。如果不花费数小时处理代码,我应该想象通过在页面成功“完成”并准备好移动到下一页时分配会话变量,可以再次实现这一点。

会话功能强大,可让您控制大量用户数据,以便在整个使用期间轻松体验您的网站体验。请注意您记录的会话数据 - 它应始终是可能的最小数量,并且不包含任何可能危及用户个人详细信息或其帐户的数据 - 即不存储其用户名和密码,只需存储如果通过身份验证,则为“1”或“0”。

希望有所帮助。