使用mysql数据库中的选项值进行x-editable select

时间:2016-01-16 21:03:03

标签: php mysql x-editable

所以我使用x-editable进行bootstrap,这对我来说很棒。

任何人都可以帮助我如何将mysql数据库中的选项值设置为x-editable select options

这是我的PHP代码

$result1 = ("SELECT * FROM users where type='agent'") or mysql_error(); 
    $users=mysql_query($result1);
        while($rowa = mysql_fetch_array($users)){

        ?>
        <option name="agent" value = "<?php echo $rowa['username']; ?>" >
            <?php echo $rowa['username']; ?>
        </option>
    <?php
    }
?>

2 个答案:

答案 0 :(得分:0)

所以你想要做的事实上是创建一个JSON字符串,你将它放入anchor元素中。让我们看看它是什么样的。

首先,您需要将用户名推送到数组对象中,然后json对其进行编码。那将是这样的:

$usernames = array();
while(.....){
    $usernames[] = $rowa['username'];
}
$usernames = json_encode($usernames);

<a href="#" 
    id="username" //your reference 
    data-type="select" //so the x-editable library makes a select list
    data-name="username" 
    data-pk="1" 
    data-value="5" 
    data-original-title="Select Username" 
    data-source="<?php echo $usernames?"> //this is your JSON array of usernames.
 ">
    Username
</a>

这将生成一个用户名的选择列表。

Here's your functioning jsFiddle

答案 1 :(得分:0)

我也遇到了和Johannes Kiehl一样的问题。 然而,经过一番调查后,我发现了以下内容并最终修复了它 - 不知何故。它可能不是最优雅的方法,因此非常欢迎改进的想法。

这就是我想要实现的目标: 在选择字段中,应显示MySQL-Query的结果。在select上成功后,我想用新内容刷新div,也可以通过外部PHP文件加载。

上述解决方案中的问题: 由PHP给出的JSON-Array(在我的例子中)看起来像这样:

[{"value":"1","text":"TEXT1"},{"value":"2","text":"TEXT2"}]

小提琴中使用的数组如下:

{'1': 'something', '2': 'another thing'}

所以我认为双引号可能是问题所在。 我当时用PHP做了:

$myarray = str_replace("\"", "'", $myarray);

很容易就像一两三就有效。这是完整的事情:

用于定义可编辑选择元素的Javascript:

$('#myselect-id').editable( {
    success: function(response, newValue) {
        $( "#mydiv-id" ).load("loading-external-results.php");
        }
    });

<强> PHP

    <?php
$myarray = array();
$query = "SELECT id, field1 FROM mytable";
$result = mysqli_query($dbconnect, $query);
while ($row = mysqli_fetch_array($result))
{
    $myarray[] = array('value' => $row['id'], 'text' => $row['field1']);

}
$myarray = json_encode($myarray);
$myarray = str_replace("\"", "'", $myarray);
?>

用于生成select元素的HTML:

    <a href="#" id="myselect-id"
            data-type="select"
            data-name="fieldname-in-table-to-update"
            data-pk="id-of-the-affected-mysql-row"
            data-value="5"
            data-url="post.php"
            data-source="'.$myarray.'">Text for Select</a>
        <div id="mydiv-id">
Some Content, replaced on success of select element.
    </div>