![](/img/trans.png)
[英]Populating the HTML drop-down list with a value that is in the MySQL databse and making it 'selected' while there are other options in the list
[英]php mysql form while statement populating drop down with selected
我在填充数据的下拉选项中遇到了一些问题。 我正在使用来自2个表的数据填充表单,使用不同的查询和嵌套的while语句。 第一个给出联系信息的输出,第二个是填充状态字段。 它们都工作正常,但我试图使用三元运算符将所选选项从数据库更改为正确的选项,我想我没有选择正确的数据。 如果我尝试在2个表上进行连接,则它只输出联系人中存在的状态,或者输出所有状态加上联系人中任何记录的双精度数。 我觉得我离这儿很近。 这是php;
$dialogValue = $_POST['dataOpen'];
$sql = "SELECT * FROM contacts prc
JOIN states as st
ON (prc.stateId = st.idStates)
WHERE (idContacts ='" . $selectionValue ."')";
$statesSQL = "SELECT * FROM states";
$prcresult = $conn->query($sql);
$statesResult = $conn->query($statesSQL);
if ($prcresult->num_rows > 0) {
// output data of each row
while($prcrow = $prcresult->fetch_assoc()) {
echo
"<form>"
."<fieldset>"
."<label for='name'>Name</label>"
."<input type='text' name='firstName' value='" . $prcrow["firstName"] ."'>"
."<input type='text' name='lastName' value='" . $prcrow["lastName"] ."'>"
."<input type='text' name='address1' value='" . $prcrow["address1"] ."'>"
."<input type='text' name='address2' value='" . $prcrow["address2"] ."'>"
."<input type='text' name='city' value='" . $prcrow["city"] ."'>";
if ($statesResult->num_rows > 0) {
echo "<select>";
// output data of each row
while($strow = $statesResult->fetch_assoc()) {
//echo '<option value="'.$value.'" '.(($value=='United States')?'selected="selected"':"").'>'.$value.'</option>';
echo "<option value='" .$strow["idStates"] ."'" .(($strow["idState"]==$prcrow["statesId"])?'selected="selected"':"").">" .$strow["state"] ."</option>";
}
}
}
} else {
echo "0 results";
}
/*if ($statesResult->num_rows > 0) {
// output data of each row
while($row = $statesResult->fetch_assoc()) {
echo
"<option value='" .$row["idStates"] ."'>" .$row["state"] ."</option>";
}
}else{
echo "o results";
}*/
echo
"</select></fieldset>
</form>";
$conn->close();
?>
我正在使用的表具有这种结构;
这是联系人
idContacts
firstName
lastName
address1
address2
city
stateId
zip
phone1
phone2
email
这是国家;
idStates
state
它们连接在contacts.stateId = states.idStates的第一个查询$ sql上,不确定我是否需要第二个查询...
非常感谢任何帮助!
我找到了答案。 必须首先在三元运算符中使用先前的查询。 像这样;
while($strow = $statesResult->fetch_assoc()) {
//echo '<option value="'.$value.'" '.(($value=='United States')?'selected="selected"':"").'>'.$value.'</option>';
echo "<option value='" .$strow["idStates"] ."'" .(($prcrow["statesId"]===$strow["idState"])?'selected="selected"':"").">" .$strow["state"] ."</option>";
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.