Php 如何从数据库中获取数据并创建动态选择?
我正在尝试创建一个动态的选择,例如,如果数据库中有3个项目,那么它将从数据库中创建3个具有值的选择。这是当用户单击add按钮时创建select的javascript。 现在,在用户创建3选择并提交它之后,如果用户希望编辑回数据,我该如何做Php 如何从数据库中获取数据并创建动态选择?,php,jquery,mysql,Php,Jquery,Mysql,我正在尝试创建一个动态的选择,例如,如果数据库中有3个项目,那么它将从数据库中创建3个具有值的选择。这是当用户单击add按钮时创建select的javascript。 现在,在用户创建3选择并提交它之后,如果用户希望编辑回数据,我该如何做 function addField(area,field,limit) { var field_area = document.getElementById(area); var all_inputs = field_area.getElementsByTa
function addField(area,field,limit)
{
var field_area = document.getElementById(area);
var all_inputs = field_area.getElementsByTagName("select");
var last_item = all_inputs.length - 1;
var last = all_inputs[last_item].id;
if(document.createElement)
{
var li = document.createElement("li");
var input = document.createElement("select");
var opt = document.createElement("option")
input.id = field;
input.name = field;
opt.value = "NULL";
opt.textContent = "NO LECTURER";
li.id = "li"+last_item;
input.appendChild(opt);
li.appendChild(input)
$(document).ready(function()
{
$.ajax
({
type:"post",
url: "event/data.php",
success: function(data)
{
console.log(data);
$(input).append(data);
}
});
});
field_area.appendChild(li);
}
}
这里是我创造的一个例子
下面是它的工作原理
所以基本上在数据库中有5个数据,所以我试图做的是在下一页它会自动创建精确的5个选择。我该怎么做
谢谢让我们假设,$options保存结果查询 因此,您必须做的是循环遍历项目,并在
标记中回显它们
比如:
创建一个函数(用于重用)
完整的工作示例:
<?php
// Returns select dropdown
// -----------------------------------------------------------------------
function create_select($name='select', $values = array(), $current='')
{
$select = '
<select name="'.$name.'">';
foreach($values as $key => $value){
$selected = $key == $current ? ' selected = "selected"' : "";
$select .= '
<option value="'.$key.'"'.$selected.'>'.$value.'</option>';
}
$select .= '
</select>
';
return $select;
}
$dbhost = 'localhost:3306';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass, $dbname);
if(!$conn )
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('effone_db');
$query = mysql_query("SELECT * FROM settings");
while ($row = mysql_fetch_array($query)) {
$options[$row['option']] = $row['option_value'];
}
echo create_select('settings',$options,'100');
?>
那么$value应该是数据库中的数据,对吗?这是函数的默认值,无需麻烦,按原样复制粘贴$选项是调用函数时必须关注的数据数组。记住使用此函数时,数组键将是选项值,数组值将是选项文本。因此,从技术上讲,该函数使用数据库中的值创建一个select,对吗?那么,如果totalRows\u somedatabase中有3个,那么我如何使用它来自动创建3个select呢?所以我只需将totalRows传递给函数并创建一个循环?在数据库中运行查询并获取数组中的值(比如:$options=array($20'=>'two','30'=>'three','40'=>'foury'));并通过函数传递数组$options。它将为我所做的工作生成23FortyAdded图片,真的,伙计,谢谢,这只是另一个问题
// Returns select dropdown
// -----------------------------------------------------------------------
function create_select($name='select', $values = array(), $current='')
{
$select = '
<select name="'.$name.'">';
foreach($values as $key => $value){
$selected = $key == $current ? ' selected = "selected"' : "";
$select .= '
<option value="'.$key.'"'.$selected.'>'.$value.'</option>';
}
$select .= '
</select>
';
return $select;
}
// $options : return array from DB
$curr = 'some_key';
$select_name = 'my_select';
echo create_select($select_name,$options,$curr);
<?php
// Returns select dropdown
// -----------------------------------------------------------------------
function create_select($name='select', $values = array(), $current='')
{
$select = '
<select name="'.$name.'">';
foreach($values as $key => $value){
$selected = $key == $current ? ' selected = "selected"' : "";
$select .= '
<option value="'.$key.'"'.$selected.'>'.$value.'</option>';
}
$select .= '
</select>
';
return $select;
}
$dbhost = 'localhost:3306';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass, $dbname);
if(!$conn )
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('effone_db');
$query = mysql_query("SELECT * FROM settings");
while ($row = mysql_fetch_array($query)) {
$options[$row['option']] = $row['option_value'];
}
echo create_select('settings',$options,'100');
?>