所以我使用x-editable进行引导,这对我来说太糟糕了。
谁能帮我如何将 MySQL 数据库中的选项值设置为可 X 编辑的选择选项
这是我的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
}
?>
所以你要做的实际上是创建一个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>
这将生成一个用户名选择列表。
这是你的功能jsFiddle
我也偶然
发现了与Johannes Kiehl相同的问题。但是,经过一番调查,我发现了以下内容并最终修复了它 - 不知何故。这可能不是最优雅的方法,因此非常欢迎改进的想法。
以下是我想要实现的目标:在选择字段中,将显示来自 MySQL 查询的结果。成功选择后,我想用新内容刷新一个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);
?>
用于生成选择元素的 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>