如何在javascript交互的php页面之间正确传递变量
How to pass variable between php pages correctly where javascript is interactive?
我是这个领域的新手,目前在小型电子商务网站上工作。因此,如果有人能给我任何建议或提示,或者将类似的问题与这个问题的答案联系起来,我将不胜感激。
我知道这篇文章很长。。。然而,我想尽可能准确地分享我的处境,让人们正确地理解我正在挣扎的事情。这就是为什么它变成了长帖。。。。。。
我有一个流程和代码,你可以在下面看到。
而且,我现在的处境是,我不知道如何让"编辑"按钮在revieworder.php页面中正确工作,而其他功能则可以正常工作。。。。
所以,我的问题是如何同时实现以下目标?
-
当用户按下revieworder.php页面中的"编辑"按钮时,将变量从revieworderphp传递到options.php和deliveryinformation.php页面
-
用户从revieworder.php页面跳转到deliveryinformation.php页面后,用于国家/地区选择的javascript仍然正常工作(通过更改国家/地区,javascript返回从DB检索的shippingfee,具体取决于同一页面中所选的国家/地区(deliveryinformations.php)。)
-
shippingfee、totalfee和country数据在以下流程中正确传递
revieworder.php→交付信息.php→revieworder.php
revieworder.php→options.php→交付信息.php→revieworder.php
你能教我如何存档吗?
我的网站流在这里
第一页(options.php):用户可以选择他们想要订购的产品的详细信息
第二页(deliveryinformation.php):用户应该输入要交付的信息,如姓名、地址等。此外,通过更改国家/地区,javascript会返回从DB检索到的shippingfee,具体取决于同一页中所选的国家/地区(deliveryformation.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>
非常感谢您的帮助和问候,
Hiro
如果您自己设置会话变量,使用会话将使站点中的页面能够访问数据"池"。这可以很容易地在PHP中完成——请参阅W3上的这个页面了解基本细节,一旦你掌握了基本概念,网上还有很多其他网站可以轻松地浏览会话。
我不太确定你在第二个问题中问的是什么。是不是你想让第二个页面自动知道用户的国家/地区?如果是这样,这可以通过在上一页上分配会话变量或使用地理位置来实现-请参阅此处的帮助
至于问题三,实现适当的流是一个体系结构问题——您需要确保用户访问的页面只允许您想要的直通流。如果不花几个小时处理代码,我想当一个页面成功"完成"并准备好移动到下一个页面时,可以通过分配会话变量再次实现这一点。
会话功能强大,允许您控制大量用户数据,以简化他们在整个使用期间对您网站的体验。不过,只需小心您记录的会话数据——它应该始终是尽可能少的数量,并且不包含任何可能危及用户个人信息或帐户的数据——也就是说,不要存储他们的用户名和密码,如果他们通过身份验证,只需存储int"1"或"0"。
希望能有所帮助。
- 函数参数中的数据与指定变量之间的任何性能差异
- 全局变量和全局对象的属性之间有什么区别吗
- 在索引.html和应用.js [node.js] 之间共享变量
- 什么是&&在没有if的行中的变量之间
- 在JavaScript中,如何修复元素显示和变量创建之间的初始差异
- 在Knockoutjs中的ViewModels之间共享变量状态
- 在控制器之间传递变量的最佳方式
- 通过变量在两个数字之间切换
- 在函数之间传递javascript变量
- 在aspx页面c#之间传递/引用/发送变量/会话状态
- 在两个浏览器选项卡之间共享变量范围
- Javascript创建函数,以便在其他函数之间共享变量
- 关于node.js/javascript在文件之间共享变量
- AngularJS:如何在控制器之间传递变量
- 使用 AngularJS 在控制器之间传递变量
- 创建一个变量并在页面之间移动时“存储它”,jQuery
- 在 AngularJS 和非 AngularJS 弹出窗口之间共享变量
- 我需要在jQuery函数和AJAX之间获取一个变量
- 在Ember.js中的方法之间共享变量上下文
- 控制器之间变量名和数据的奇怪行为