如何从数据库中获取数据并创建动态选择?

时间:2014-03-27 03:29:47

标签: php jquery mysql

我试图创建一个动态的选择,例如,如果数据库礼物中有3个项目,那么它将使用数据库讲师的值创建3个select。这是用户点击按钮添加时创建选择的javascript。 现在用户创建3后选择并提交它,如果用户希望编辑回数据,我该怎么办呢?

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);


    } 

    }

这是我创建的例子,

http://i.imgur.com/je1MchL.png

这是如何运作的

http://i.imgur.com/c4ICTWt.png

所以基本上在数据库中有5个数据,所以我试图做的是在下一页它将自动创建精确的5选择。我怎么能这样做?

由于

2 个答案:

答案 0 :(得分:0)

我们假设 $ options 包含结果查询。

所以你必须做的是循环通过项目并在<select>标签内回显它们。

像:

<html>
    <body>
        <select name='nameUrSelectHere'>
            <?php
                foreach($options as $option){
                    echo "<option value='" . $option['column_one'] . "'>" . $option['column_two'] . "</option>" ;
                }
            ?>
        </select>
    </body>
</html>

答案 1 :(得分:0)

创建一个函数(对重用有用)

// 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);

完整的工作示例:

enter image description here

<?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');
?>