所以我使用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
}
?>
答案 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>
这将生成一个用户名的选择列表。
答案 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>