条带形式的Php变量
大家好,我正在尝试在stripe简单实现中使用一个php变量 如果仅当该人员已登录时,才会从数据库中获取金额,否则将显示登录按钮。我的问题是,当我将代码放入echo语句时,php变量($amount)不再正确传递。以下是我的代码:条带形式的Php变量,php,html,Php,Html,大家好,我正在尝试在stripe简单实现中使用一个php变量 如果仅当该人员已登录时,才会从数据库中获取金额,否则将显示登录按钮。我的问题是,当我将代码放入echo语句时,php变量($amount)不再正确传递。以下是我的代码: if(isset($_SESSION['u_id'])){ $newId = $_SESSION['u_id']; $sql = "SELECT Amount FROM costumers WHERE id
if(isset($_SESSION['u_id'])){
$newId = $_SESSION['u_id'];
$sql = "SELECT Amount FROM costumers WHERE id='$newId'";
$result = mysqli_query($conn, $sql);
if ($row = mysqli_fetch_assoc($result)){
$amount=$row['Amount'];
}
echo'<form class = "payment" action="/your-server-side-code" method="POST">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test"
data-amount="$amount"
data-name="Company"
data-description="Card Payment"
data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
data-locale="auto">
</script>
<script>
document.getElementsByClassName("stripe-button-el")[0].style.display = \'none\';
</script>
<button type="submit" class="yourCustomClass">Pay with Card</button>
</form>';
} else{
echo'<div class="logInButton" onclick = "location.href = \'loginindex.php\'">
<a href="loginindex.php">Login/Sign up</a></div>';
}
if(isset($\u SESSION['u\u id'])){
$newId=$\u会话['u\u id'];
$sql=“从客户中选择金额,其中id=”$newId';
$result=mysqli\u查询($conn,$sql);
如果($row=mysqli\u fetch\u assoc($result)){
$amount=$row['amount'];
}
回声'
document.getElementsByClassName(“条带按钮el”)[0].style.display=\'none\;
刷卡
';
}否则{
回声'
';
}
提前谢谢 首先尝试在echo上使用sprintf传递$amount值,如下所示:
echo sprintf("<form class = 'payment' action='/your-server-side-code' method='POST'>
<script
src='https://checkout.stripe.com/checkout.js' class='stripe-button'
data-key='pk_test'
data-amount='%s'
data-name='Company'
data-description='Card Payment'
data-image='https://stripe.com/img/documentation/checkout/marketplace.png'
data-locale='auto'>
</script>
<script>
document.getElementsByClassName('stripe-button-el')[0].style.display = 'none';
</script>
<button type='submit' class='yourCustomClass'>Pay with Card</button>
</form>",$amount);
而不是:
$sql = "SELECT Amount FROM costumers WHERE id='$newId'";
$result = mysqli_query($conn, $sql);
if ($row = mysqli_fetch_assoc($result)){
$amount=$row['Amount'];
}
祝你好运。试着将
echo
语句中的引号改为双引号-“
”,也许(为了可读性)会用大括号显示变量的使用位置。例如echo“数据量={$amount}”“
另外,为了可读性和易用性,当你有大量的HTML时,你最好避开PHP,只在需要时才重新使用它。然后问题行变成data amount:=”
剩下的代码中的双引号呢?我希望只有当用户登录时才显示表单,所以我认为整个代码都必须在回音中,但我对php不是很在行
$sql = "SELECT Amount FROM costumers WHERE id='$newId'";
$result = mysqli_query($conn, $sql);
if ($row = mysqli_fetch_assoc($result)){
$amount=$row['Amount'];
}