如何在单击单选按钮时填充文本字段


How to populate text fields when radio button is clicked?

我正在创建一个网页,其中有两个div(计费详细信息和航运详细信息)。加载页面时,将自动显示账单详细信息,而送货详细信息仍为空。我包含了两个单选按钮,允许用户选择送货详细信息是否与账单详细信息相同。如果用户从单选按钮中选择yes,那么相同的详细信息应该显示在发货详细信息中。注意:详细信息存储在数据库中,我使用php来获取显示的数据

目前,我只尝试使用

<?php if(isset($_POST'[shipping'] == 'yes')){echo $fname} ?>

的名字字段只是看看它是否工作,但我似乎不工作。

<div id="leftprofile">
    <form id="au" method="post" action="../../../coursework/coursework/scripts/checkout.php">
    <fieldset class="billing">
        <legend>Billing Details</legend><br />
        <label for="fname" class="reglabel">First Name:</label>
        <input required name="fname" type="text" id="fname" value="<?php echo $fname ?>"/><br />
        <label for="lname" class="reglabel">Last Name:</label>
        <input required name="lname" type="text" id="lname" value="<?php echo $lname ?>"/><br />
        <label for="address" class="reglabel">Address:</label>
        <input required name="address" id="address" type="text" value="<?php echo $address ?>"/><br />
        <label for="town" class="reglabel">Town:</label>
        <input required name="town" id="town" type="text" value="<?php echo $town ?>"/><br />
        <label for="postcode" class="reglabel">Post Code:</label>
        <input required name="postcode" id="postcode" type="text" value="<?php echo $postcode ?>"/><br />
        <label for="phone" class="reglabel">Phone:</label>
        <input required name="phone" id="phone" type="text" value="<?php echo $phone ?>"/><br />
        <label for="email" id="EmailLabel" class="reglabel">E-mail:</label>
        <input required name="email" type="email" id="email" value="<?php echo $email ?>"/><br />
    </fieldset>
    </form>
</div>
<div id="rightprofile">
    <form id="au" method="post" action="../../../coursework/coursework/scripts/checkout.php">
    <fieldset class="billing">
        <legend>Shipping Details</legend><br />
        <form>
            Same as billing address?
            <input type="radio" name="shipping" id="yes" value="yes">Yes
            <input type="radio" name="shipping" id="no" value="no">No<br/>
        </form>
        <label for="fname" class="reglabel">First Name:</label>
        <input required name="fname" type="text" id="fname" value="<?php if(isset($_POST'[shipping'] == 'yes')){echo $fname} ?>"/><br />
        <label for="lname" class="reglabel">Last Name:</label>
        <input required name="lname" type="text" id="lname" /><br />
        <label for="address" class="reglabel">Address:</label>
        <input required name="address" id="address" type="text" /><br />
        <label for="town" class="reglabel">Town:</label>
        <input required name="town" id="town" type="text" /><br />
        <label for="postcode" class="reglabel">Post Code:</label>
        <input required name="postcode" id="postcode" type="text" /><br />
        <label for="phone" class="reglabel">Phone:</label>
        <input required name="phone" id="phone" type="text" /><br />
        <label for="email" id="EmailLabel" class="reglabel">E-mail:</label>
        <input required name="email" type="email" id="email" /><br />
    </fieldset>
    </form>
</div>

我为您编写了一些简化的示例代码。该站点包含一个表单,有两个输入字段(计费和发货),以及一个复选框,用于检查发货信息是否与计费信息相同。如果复选框被选中,代码将简单地忽略输入'shipping'的任何内容。

这将达到您所要求的,至少从PHP的角度来看。如果你正在寻找更多的"复制数据在那些输入字段,到那些输入字段"在浏览器中实时,那么这是一个任务的Javascript,而不是PHP。

<?php
/* Check if anything was submitted */
if(isset($_POST))
{
    /* Retrieve billing information */
    $billing_name = $_POST['billing_name'];
    $billing_addr = $_POST['billing_addr'];
    /* Check if shipping same as billing */
    if(isset($_POST['same']))
    {
        /* Shipping is the same as billing */
        $shipping_name = $billing_name;
        $shipping_addr = $billing_addr;
    }
    /* If not, set shipping to the posted value */
    else
    {
        $shipping_name = $_POST['shipping_name'];
        $shipping_addr = $_POST['shipping_addr'];
    }
    $insert = mysql_query(...);
}
?>
<form method="post" action="#" />
Billing information
<label for="billing_name">Name</label>
<input type="text" id="billing_name" name="billing_name" />
<label for="billing_addr">Addr</label>
<input type="text" id="billing_addr" name="billing_addr" />
<label for="same" />Is the shipping information the same as billing information?</label>
<input type="checkbox" id="same" name="same" />
Shipping information
<label for="shipping_name">Name</label>
<input type="text" id="shipping_name" name="shipping_name" />
<label for="shipping_addr">Addr</label>
<input type="text" id="shipping_addr" name="shipping_addr" />
<input type="submit" value="Register" />
</form>