如何更新包含页面中的php变量而不重新加载页面[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更新包含页面中的php变量而不重新加载页面[重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我想为RazorPay购买应用促销代码,如果有人申请了有效代码,则向他们显示折扣金额。为此,我必须更新我的php变量值。我尝试了所有可能的解决方案,但没有任何效果。我可以根据Ajax响应更改html值,但是如何更新我的php值?
这是我的php页面 - buy.php
<?php $amount = 2500; ?>
<p>Get 1 Year for<br> ₹ <span id="price"><?php echo $amount; ?</span></p>
<form id="promoForm" action="pay.php" method="POST">
<input type="text" name="code" placeholder="Have a Promo Code?" required />
<button id="applybtn" type="submit">Apply</button>
</form>
<p class="errormsg"></p>
<?php include"pay.php"; ?>
所以,如果有人申请了promocode,我正在通过像这样的ajax调用来检查数据库中的代码 -
<script>
$("#promoForm").submit(function(event)
event.preventDefault(); //prevent default action
var post_url = $(this).attr("action"); //get form action url
var request_method = $(this).attr("method"); //get form GET/POST method
var formdata = $(this).serialize(); //Encode form elements for submission
$.ajax(
url : post_url,
type: request_method,
data : formdata,
success: function(response)
if(response.includes("codeApplied"))
$('#applybtn').prop('disabled', true);
ogprice = $("#price").text(); // Get price value
//calculate percentage
function fpercent(quantity, percent)
return quantity * percent / 100;
discount = fpercent(ogprice, 5);
offerPrice = ogprice - discount.toFixed(2);
$("#price").text(offerPrice); //Set discounted price value
response = 'Your Code Applied Successfully!';
$('.errormsg').html('<span style="color:green;">'+response+'</span>');
else
response = 'This code does not exist';
$('.errormsg').html('<span style="color:red;">'+response+'</span>');
);
);
</script>
这是我的pay.php检查数据库中的代码,如果代码成功应用,然后使用点击购买按钮的折扣金额(购买按钮是一个razorpay支付按钮) -
<?php
include('dbconnect.php');
$codeApplied = 'false';
if($_SERVER["REQUEST_METHOD"] == "POST")
$code = $_POST['code'];
// Check if code exist
$exist = mysqli_query($con, "SELECT `code` FROM `promocodes` WHERE `code` = '".$code."'");
$cnt = mysqli_num_rows($exist);
if($cnt > 0)
$msg = 'codeApplied'; //'Your Code Applied Successfully!';
$codeApplied = 'true';
else
$msg = 'failed'; //'This code does not exist';
echo $msg;
echo $codeApplied;
if($codeApplied == 'true')
$amt = 2375;
else$amt = 2500;
echo $amt;
?>
直到现在,我得到了所有预期的结果。金额的HTML值也按折扣更改。但是php varible $amount
仍然具有原始值(2500)。
谁能帮我这个?
答案
你需要知道php是一种服务器语言,当你请求一个页面时,服务器将运行这个php并将其转换为html所以你不能在解析后通过html和javascript更改php变量你必须在服务器端查看当前用户是否应用了促销代码,可以在会话中添加它,然后在用户提交时再次进行计算,因为变量$ amount不会改变
以上是关于如何更新包含页面中的php变量而不重新加载页面[重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 href onclick 更新 div 而不重新加载页面?
在购物车页脚中重新加载 PHP If/Else 语句而不重新加载整个页面? ( XT 浮动车)