Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.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
Javascript 在选择mysqli请求行下拉选项上填充表单字段_Javascript_Php_Mysql_Ajax_Mysqli - Fatal编程技术网

Javascript 在选择mysqli请求行下拉选项上填充表单字段

Javascript 在选择mysqli请求行下拉选项上填充表单字段,javascript,php,mysql,ajax,mysqli,Javascript,Php,Mysql,Ajax,Mysqli,请在附件中找到我检索当前登录用户相关地址的工作示例的副本 mysqli查询正在成功打印与会话用户名关联的保存到mysql数据库的地址选项。使用会话用户名在提交时也成功保存了地址 但是,我想添加一些功能,用select类中的selected选项填充表单字段 表单用于签出页面,登录用户可以在其中选择以前保存的地址以完成签出过程 非常感谢您的帮助 表架构: 已将用户名列更新为唯一,现在收到重复的密钥错误 代码更新如下: <div class="delivery-address-sele

请在附件中找到我检索当前登录用户相关地址的工作示例的副本

mysqli查询正在成功打印与会话用户名关联的保存到mysql数据库的地址选项。使用会话用户名在提交时也成功保存了地址

但是,我想添加一些功能,用select类中的selected选项填充表单字段

表单用于签出页面,登录用户可以在其中选择以前保存的地址以完成签出过程

非常感谢您的帮助

表架构:

已将用户名列更新为唯一,现在收到重复的密钥错误

代码更新如下:

<div class="delivery-address-select">
    <select class="delivery-address-form-control" name="address">
        <option>Select An Address</option>
                            


$servername = "####";
$username = "####";
$password = "###";
$dbname = "####";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
 die("Connection failed: " . $conn->connect_error);
 } 
$username = $_SESSION['username'];

$sql = "SELECT streetAddress, extendedAddress, locality, region, postalCode FROM addresses WHERE username='$username'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  // output data of each row
 while ($row = $result->fetch_array()) {
if (!empty($_POST['address']) && $_POST['address'] == $row['id']) {
    $selected = 'selected="selected"';
} else {
    $selected = '';
}
echo '<option '.$selected.' value="'.$row["id"].'">'.$row["streetAddress"].', '.$row["extendedAddress"].', '.$row["locality"].', '.$row["region"].', '.$row["postalCode"].'</option>';
}
} else {
     echo "0 results";
}

$conn->close();?> 
                                
                            </select>
                    </div>
                              <form id="checkout" method="post" action="server.php">
                              <form id="saveAddress" method="post" action="insert.php">
                    <div class="add-an-address">
                        <div class="add-an-address-title">
                            <button id="add-new-address" class="add-new-address">Add new address</button>
                        </div>
                        <div class="add-an-address-container">
                            <div class="add-an-address-form">
                                    <div class="add-address-form-group">
                                        <div class="add-address-name-section">
                                        <input type="hidden" name="username" value="<?php echo $username; ?>" />
                                            <input type="text" name="firstName" class="delivery-address-form-control-first-name" placeholder="First Name" />
                                        </div>
                                        <div class="add-address-name-section">
                                            <input type="text" name="lastName" class="add-address-form-control" placeholder="Last Name" />
                                        </div>
                                    </div>
                                    <div class="add-address-form-group">
                                        <input type="text" name="company" class="add-address-form-control" placeholder="Business Name" />
                                    </div>
                                    <div class="add-address-form-group">
                                        <input type="number" name="phone" class="add-address-form-control" placeholder="Mobile Phone" />
                                    </div>
                                    <div class="add-address-form-group">
                                        <div class="street-left-section">
                                            <input type="text" name="streetAddress" class="delivery-address-form-control-first-name" placeholder="Street Address" />
                                        </div>
                                        <div class="street-right-section">
                                            <input type="text" name="extendedAddress" class="add-address-form-control" placeholder="Apt, Suite" />
                                        </div>
                                    </div>
                                    <div class="add-address-form-group">
                                        <div class="add-address-name-section">
                                            <input type="text" name="locality" class="delivery-address-form-control-first-name" placeholder="City" />
                                        </div>
                                        <div class="street-right-section">
                                            <input type="text" name="region" class="delivery-address-form-control-first-name" placeholder="State" />
                                        </div>
                                        <div class="street-right-section">
                                            <input type="text" name="postalCode" class="add-address-form-control" placeholder="Postal Code" />
                                        </div>
                                    </div>
                                    <div class="add-address-form-group">
                                        <input type="text" name="add-address-business-notes" class="add-address-form-control" placeholder="Notes" />
                                    </div>
                                    <div class="add-address-form-group-buttons">
                                        <button class="add-address-cancel" type="reset" id="add-address-cancel">Cancel</button>
                                        <button type="submit"  method="post" formaction="insert.php">Save</button>
                                    </div>
                                        </form>                     
                            </div>
                        </div>
                    </div>`

您可以使用以下代码。注意,您必须使用准备好的语句来避免SELECT查询中的SQL注入。还要确保列用户名是唯一的

为选择框添加名称属性

<select class="delivery-address-form-control" name="address">
然后在while循环中:

while ($row = $result->fetch_array()) {
    if (!empty($_POST['address']) && $_POST['address'] == $row['id']) {
        $selected = 'selected="selected"';
    } else {
        $selected = '';
    }
    echo '<option '.$selected.' value="'.$row["id"].'">'.$row["streetAddress"].', '.$row["extendedAddress"].', '.$row["locality"].', '.$row["region"].', '.$row["postalCode"].'</option>';
}

您的地址表中有主键吗?感谢您的快速响应@KostasMitsarakis,我已经包括了表结构的打印屏幕。没有独特的栏目。请检查我的答案,并告诉我这是否是您所需要的。@KostasMitsarakis非常感谢您!我现在就来试试我试过了,使这个专栏独一无二。当我尝试添加第二个地址时,我得到了一个amylola错误:无法执行INSERT INTO addresses用户名、streetAddress、extendedAddress、Location、region、postalCode值'amylola','Fake Addresssss','Fake','Fake','Fake','08002'。键“username”Unique的重复条目“amylola”意味着您不能在列行中有两倍于相同值。因此,数据不插入是很自然的。是的,我理解这只是我想知道您是否有建议,因为客户可能需要保存多个地址:再次感谢您的帮助!为此,您必须创建另一个表customer,在地址表中您将拥有外键customer\u id。然后,您可以在地址表中拥有任意数量的客户。非常感谢您的澄清,我现在将更改为外键!但是,地址没有填充字段,我现在将附加打印屏幕。我现在使用的代码包含在最新的编辑中。它包括while循环和select类: