x-редактируемый выбор со значением параметров из базы данных MySQL

Так что я использую 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
}
?>

1

Решение

Итак, что вы хотите сделать, это на самом деле создать строку JSON, которую вы поместите в anchor элемент. Давайте посмотрим, как это выглядит.

Сначала вам нужно вставить имена пользователей в объект массива it, затем 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

0

Другие решения

Я также наткнулся на те же проблемы, что и Йоханнес Киль.
Однако после небольшого расследования я обнаружил следующее и, наконец, исправил его — каким-то образом. Это может быть не самый элегантный подход, поэтому идеи для улучшения очень приветствуются.

Вот чего я хотел добиться:
В поле выбора должны отображаться результаты запроса MySQL. После успешного выбора я хочу обновить div новым контентом, также загружаемым через внешний PHP-файл.

Проблема в решении, указанном выше:
JSON-массив, возвращаемый PHP (в моем случае) выглядит следующим образом:

[{"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 для генерации элемента select:

    <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>
5 «data-original-title =» Выберите имя пользователя «data-source =»<? php echo $ usernames? «> // это ваш массив имен пользователей JSON.
«>
имя пользователя
</ а>
[/ NOEDIT]

И это приведет к выбору списка имен пользователей.

0

По вопросам рекламы [email protected]