Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
条带形式的Php变量_Php_Html - Fatal编程技术网

条带形式的Php变量

条带形式的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

大家好,我正在尝试在stripe简单实现中使用一个php变量 如果仅当该人员已登录时,才会从数据库中获取金额,否则将显示登录按钮。我的问题是,当我将代码放入echo语句时,php变量($amount)不再正确传递。以下是我的代码:

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'];
        }