我正在尝试填充这样的表单:
$email = $_SESSION["email"];
$result = $mysqli->query("SELECT * FROM patient WHERE email = '$email'");
$user = $result->fetch_assoc();
$firstName = $user["firstName"];
$lastName = $user["lastName"];
$bday = $user["bday"];
$address1 = $user["address1"];
$address2 = $user["address2"];
$city = $user["city"];
$state = $user["state"];
$zipCode = $user["zipCode"];
$phone = $user["mobilePhone"];
$contactMethod = $user["contactMethod"];
$reminders = $user["reminders"];
$updates = $user["updates"];
然后我要像这样使用echo:
<input type="text" name="address1" <?php echo 'value=' . $address1; ?> required />
它适用于除所示字段以外的所有字段。它仅获得该列的第一个单词。例如,“ 123 First Street”仅将输入字段填充为“ 123”。如果删除空格并将列值设置为“ 123FirstStreet”,则会填充整个内容。因此,我猜测mySQL自动使用空格定界符来分隔列中的值。有没有办法获取整个列?预先感谢。
答案 0 :(得分:3)
您的代码
<input type="text" name="address1" <?php echo 'value=' . $address1; ?> required />
将生成一个错误的html标签,如下:
<input type="text" name="address" value=123 First Street required />
尝试将其更改为:
<input type="text" name="address" value="<?php echo $address; ?>" required />
避免这种错误的最佳实践是在插入php代码之前先编写完整的html模板/标签。
已更新
如@ user2864740所指出的,最好将输入字符串中出现的特殊字符转换为HTML字符实体的形式。
<input type="text" name="address" value="<?php htmlentities($address1); ?>" required />
答案 1 :(得分:0)
MySQL未使用任何空格分隔符,请检查数据库中的填充数据以及您可能打错的INSERT
方法。