我猜jquery,或者甚至可能需要ajax。
我有一个页面可以对名片订单进行实时证明批准。 就客户看到的而言,这只是他们的卡和两个按钮的jpg预览,一个用于进行更改,一个用于批准。该页面没有问题。
我在另外的页面上有另外两个php脚本。脚本1获取从批准页面传递的变量并格式化它们,然后输出jpg。脚本2采用从批准页面传递的相同变量,格式化它们并输出印刷准备好的PDF。
在加载审批页面时调用这两个脚本以生成文件。这些也有用。 jpg证明需要页面刷新才能加载在页面加载时创建的新/更新的jpg。
批准页面的代码:
<?php
$cartID = urldecode($_GET['itemid']);
if (!$cartID){
echo "No Cart ID found."; }
else {
$opt1value = "Option 1 Value";
$opt2value = "Option 2 Value";
$cartIDcheck = "10000"; }
$saveHere = "bc".$cartID.".jpg";
$coupon = "imagem.php?opt1value=".$opt1value."&opt2value=".$opt2value."&ioid=".$cartID;
$pressPDF = "pdfgen.php?opt1value=".$opt1value."&opt2value=".$opt2value."&ioid=".$cartID; ?>
<html>
<head>
</head>
<div id="floater">
<center>
<img src="<?php echo $coupon; ?>" style="display: none;" />
<img src="<?php echo $pressPDF; ?>" style="display: none;" />
<p>Proof your card here.<br />
<img src="<?php echo $saveHere; ?>" alt="saveHere" style="border: 2px solid #000;" /></p>
<div class="linkbutton"><a href="../../store.php?action=setitemopts&itemid=<?php echo $cartID; ?>">Need Changes</a></div>
<div class="linkbutton"><a href="../../cart.php">Approved</a></div>
</center>
</div>
</body>
</html>
这两个脚本的代码对此问题没有任何影响。 在我的所有谷歌搜索中我似乎无法弄清楚的是传递这些变量并运行两个PHP脚本的更有效方法。我能找到的一切似乎都取决于收到回报,这是没有必要的。 另一件事是,如何使用更新的图像强制图像刷新。
是的,我知道最简单的方法是在指向此页面时在提交时运行这两个脚本,但这不是购物车现在工作方式的选项。我想知道我是否可以绕过这条路,但与此同时,我想弄明白这一点。
答案 0 :(得分:0)
我终于自己想出了这个,因为它需要几个小时的谷歌搜索和拼凑,我想我会在这里发布答案,以防其他人在同一条船上。
在主PHP页面上,我把这行代码放在其他任何东西之前。<?php $cartID = urldecode($_GET['itemid']); ?>
然后在body标签上设置onload函数调用,如下所示:
<body onLoad="genproofs('<?php echo $cartID; ?>')">
最后在页面上,为最终显示JPG后的加载图像和最终显示设置了两个div。
<div class="delay">loading...</div>
<div class="floater" style="display: none;"> ... posting info here ... </div>
最后,这里是JS / AJAX将它们整合在一起。首先调用PDF生成脚本,然后调用JPG生成脚本,并在创建JPG后,强制JPG刷新&amp;交换div的可见性。
function genproofs(id) {
var itemid = id;
var imgpath = 'bc' + itemid + '.jpg?rand=' + Math.random();
$.ajax({
type: 'GET',
url: 'http://yourwebsite.com/gen_pdf.php',
data: { itemid : itemid },
});
$.ajax({
type: 'GET',
url: 'http://yourwebsite.com/gen_jpg.php',
data: { itemid : itemid },
success: function() {
var myImageElement = document.getElementById('cardproof');
myImageElement.src = imgpath;
$(".floater").show();
$(".delay").hide();
}
});
}