Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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
Php 如何从数据库中获取数据并创建动态选择?_Php_Jquery_Mysql - Fatal编程技术网

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

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

我正在尝试创建一个动态的选择,例如,如果数据库中有3个项目,那么它将从数据库中创建3个具有值的选择。这是当用户单击add按钮时创建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);


    } 

    }
这里是我创造的一个例子

下面是它的工作原理

所以基本上在数据库中有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');
?>