【问题标题】:How to display a value in textbox with radio button click in PHP如何在 PHP 中单击单选按钮在文本框中显示值
【发布时间】:2021-11-16 19:33:56
【问题描述】:

我是 php 新手,我试图在单击单选按钮时向文本框显示一个值 ($total_discount)。但是,每当单击我的单选按钮时,它只会输出一个文本“未定义”。这是我的代码

<script type="text/javascript">
   function insertDiscount(getDiscount) {
      document.getElementById("discount").value = getDiscount;
   }
</script>

<?php
   $quantity = $_POST["quantity"];
   $discount_a = 0.10;
   $discounted_price;
   $total_discount;

   if(isset($item_price)){
       $discounted_price = $item_price * $discount_a;
       $total_discount = $discounted_price * $quantity;
   }
?>

<input type="text" name="discount" id="discount" value="">
<input type="radio" name="discounts" id="discount_A" onclick="insertDiscount(''.$total_discount);">
<label for="discount_A">10% Discount</label>

【问题讨论】:

  • 查看源代码或“检查”元素:onclick="insertDiscount() 是否持有您想要的值?很可能不会,因为您需要 echo 它:onclick="insertDiscount(&lt;?php echo $total_discount ?&gt;);"

标签: javascript php html jquery radio-button


【解决方案1】:
<input type="radio" name="discounts" id="discount_A" onclick="insertDiscount(''.$total_discount);">
  • 要输出$total_discount 的值,您需要&lt;?= $total_discount; ?&gt; 来回显该值

所以你的最终结果将如下所示。

onclick="insertDiscount('<?= $total_discount; ?>')">

【讨论】:

  • 您好,感谢您的回复,我已经尝试过了,但不幸的是,单击 radiobtn 时文本框上没有显示任何内容。
  • @WiloWisk - 在声明 $total_discount 时尝试手动设置它的值。我有一种感觉isset($item_price) 总是假的。
  • @WiloWisk - 我刚刚意识到您确实需要实际调用该函数。我已经更新了我上面的答案以删除绑定的东西。用react太久了,老方法都忘记了……
  • 您好,感谢您的耐心等待。我已将 $total_discount 的值设置为 0,现在它在文本框中显示 0,但它仍然不会计算公式 $total_discount = $discounted_price * $quantity
  • @WiloWisk - 进步!如果我不得不猜测isset($item_price) 可能总是false,因为我在您的代码中的其他任何地方都看不到它。您可以手动将其更新为true 吗?或者您可以验证$item_price 是否已定义?
【解决方案2】:

PHP 未呈现变量 $total_discount 的值。

改变

onclick="insertDiscount(''.$total_discount);"

onclick="insertDiscount(&lt;?php echo($total_discount); ?&gt;)"

达到预期的效果。

【讨论】:

    【解决方案3】:
    • 输出未定义,因为 $total_discount 变量未定义。
    • 首先你可以检查$total_discount不为空。
    • 如果$total_discount 不为空,那么您可以在javascript 函数insertDiscount() 函数中传递$total_discount
    • 如果$total_discount 为null 或未定义,那么您可以分配$total_discount 变量值并传入javascript 函数insertDiscount() 函数。

    示例代码

    <?php if(isset($total_discount)): ?>
        <input type="radio" name="discounts" id="discount_A" onclick="insertDiscount(<?=$total_discount?>);">
    <?php else: ?>
        <!-- First you can assign $total_discount variable value then pass it -->
        <?php $total_discount = 10; ?>
        <input type="radio" name="discounts" id="discount_A" onclick="insertDiscount(<?=$total_discount?>);">
    <?php endif ?>
    

    【讨论】:

    • 您好,谢谢您的回复,我试过了,但它只在文本框中输出 10。有没有办法通过radiobtn click在文本框上输出$total_discount = $discounted_price * $quantity
    • 但是先生,您可以先分配 $discounted_price$quantity 变量值。并在编写$total_discount = $discounted_price * $quantity 语句并使用它之后。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 2015-07-15
    • 1970-01-01
    • 2017-01-10
    相关资源
    最近更新 更多