猿问

PHP 不会通过 POST 传递变量

我遇到一个问题,我的 PHP 代码没有在输入中传递变量。该值仅输出为一串"<?php echo $orderID ?>". 我希望它做的实际上是发送创建的变量。


<?php 

if ($order['status'] != "Received") {

    $orderID = $order['orderID'];

    var_dump($orderID);

    echo '<td><form action="./markAsReceived.php" method="POST">

          <input type="hidden" name="orderID" value="<?php echo $orderID; ?>">

          <input type="submit" class="btn btn-secondary mx-1" value="Mark As Received">

          </form></td>';

} else {

    echo '<td></td>';

}

?>

因此,如果订单状态不等于“已接收”,代码将从这里检查数据库,然后它会显示一个按钮,以便您可以将其标记为“已接收”,否则它不会显示任何内容。该按钮确实出现了,但正如我之前所说,按钮的值只是 php 代码的字符串。


我确信这很简单,但我无法全神贯注,提前感谢您的帮助!


有只小跳蛙
浏览 99回答 1
1回答

慕的地6264312

您没有使用正确的字符串连接。在双引号中,php 会查找变量,但在单引号中则不会。由于您使用的 html 使用双引号,因此字符串必须使用单引号。您可以在字符串内连接:<?php&nbsp;if ($order['status'] != "Received") {$orderID = $order['orderID'];var_dump($orderID);echo '<td><form action="./markAsReceived.php" method="POST">&nbsp; &nbsp; &nbsp; <input type="hidden" name="orderID" value="'.$orderID.'">&nbsp; &nbsp; &nbsp; <input type="submit" class="btn btn-secondary mx-1" value="Mark As Received">&nbsp; &nbsp; &nbsp; </form></td>';} else {echo '<td></td>';}?>
随时随地看视频慕课网APP
我要回答