Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.11.2017, 17:43
Аспирант
Отправить личное сообщение для mazahaler Посмотреть профиль Найти все сообщения от mazahaler
 
Регистрация: 20.11.2017
Сообщений: 72

Как вывести данные из бд в соответсвтующие input'ы?
Здравствуйте, у меня есть форма с input'ами, в которые с помощью ajax надо вывести соответствующую информацию из бд.
Вот форма:
<form method="post" action="add.php" class="orgform" id="updorgform">
        <p><span>Редактировать организацию</span></p>
        <table class="tableaddupdate">
            <tr>
                <th class="thtree">
                    <p class="Pselectorg">Выберите организацию</p>
                <div class="container" id="updcontainerorg">
 
            <div id="treeview3"></div>
        </div>
</th>

<th class="thinput">
<p>Измените данные</p>
        <input type="text" name="MainID_Ref" placeholder="MainID_Ref" class="UPDORGMainID" id="UpdOrgMainID" style='display: none;'>
        <div class="divinputupd" >
        <input type="text" name="newMainID_Ref" placeholder="MainID_Ref" class="newUPDORGMainID" id="newUpdOrgMainID" style='display: none;'>
        
        <input type="text" name="ParentType" placeholder="ParentType" style='display: none;' >
        <input type="text" name="ObjectType" placeholder="ObjectType" style='display: none;'>
        <input type="text" name="Name" placeholder="Name" class="UpdOrgName">
        <input type="text" name="PrefixKod" placeholder="PrefixKod" class="UpdOrgPrefixKod">
        <input type="text" name="FTPServer" placeholder="FTPServer" class="UpdOrgFTPServer">
        <input type="text" name="FTPUser" placeholder="FTPUser" class="UpdOrgFTPUser">
        <input type="text" name="FTPPassword" placeholder="FTPPassword" class="UpdOrgFTPPassword">
        <input type="text" name="FTPPath" placeholder="FTPPath" class="UpdOrgFTPPath">
        <input type="text" name="JurnalTemplate" placeholder="JurnalTemplate" class="UpdOrgJurnalTemplate">
        <input type="text" name="UnicStr" placeholder="UnicStr" class="UpdOrgUnicStr">
        <input type="text" name="SendMessageUser" placeholder="SendMessageUser" class="UpdOrgSendMessageUser">
        <input type="text" name="TName" placeholder="TName" class="UpdOrgTName">
        <input type="text" name="KodODU" placeholder="KodODU" class="UpdOrgKodODU">
        <input type="text" name="KodKPO" placeholder="KodKPO" class="UpdOrgKodKPO">
        <input type="text" name="FTPPort" placeholder="FTPPort" class="UpdOrgFTPPort">
        <input type="hidden" name="JurnalModification" value="<?php echo date ("Y-m-d H:i:s")?>">
</div>
        <br/>
        <br/>
        <button  id="btn" class="btnorg" type="submit" name="addOrg" value="">Сохранить изменения</button>
</th>
</tr>
</table>
</form>

Вот так я пытаюсь делать:
Ajax:
$(function(){
    $('#treeview3').on('click','li', function(){
        var Name=$(event.target).text();  
         
$.ajax({
    type:"POST",
    url: "addupdate.php",
    data:{Name:Name},
    success:function(data){
        $(".Pselectorg").html("Выбрана организация "+"'"+Name+"'");
 
 
        $(".UPDORGMainID").val(data); 
        $(".UpdOrgName").val(data); 
        $(".UpdOrgPrefixKod").val(data); 
        $(".UpdOrgFTPServer").val(data); 
        $(".UpdOrgFTPUser").val(data); 
        $(".UpdOrgFTPPassword").val(data); 
        $(".UpdOrgFTPPath").val(data); 
        $(".UpdOrgJurnalTemplate").val(data); 
        $(".UpdOrgUnicStr").val(data); 
        $(".UpdOrgSendMessageUser").val(data); 
        $(".UpdOrgTName").val(data); 
        $(".UpdOrgKodODU").val(data); 
        $(".UpdOrgKodKPO").val(data); 
        $(".UpdOrgFTPPort").val(data); 
        
 
});
});
});

addupdate.php
<?php
require_once 'connection.php';
 
if (isset($_POST['Name'])&& !empty($_POST['Name']) ){
    $Name=strval($_POST['Name']);
    //echo $Name;
 
    $query =$db->query("SELECT * FROM `dbdeviceuniversalitem` WHERE `Name`='$Name' AND `ID`>1");
 
    while ($row = $query->fetch()) {
        echo "{$row->ID}"; 
        echo "{$row->Name}";
        echo "{$row->PrefixKod}";
        echo "{$row->FTPServer}";
        echo "{$row->FTPUser}";
        echo "{$row->FTPPassword}";
        echo "{$row->UpdOrgFTPPath}";
        echo "{$row->UpdOrgJurnalTemplate}";
        echo "{$row->UpdOrgUnicStr}";
        echo "{$row->UpdOrgSendMessageUser}";
        echo "{$row->UpdOrgTName}";
        echo "{$row->UpdOrgKodODU}";
        echo "{$row->UpdOrgKodKPO}";
        echo "{$row->UpdOrgFTPPort}";
 
    }
 
}
?>

Но таким образом в каждый input выводится абсолютно вся информация
Как мне поля записи базы данных вывести в соответсвтвующие input'ы?
Нужна помощь.
Ответить с цитированием
  #2 (permalink)  
Старый 26.11.2017, 18:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от mazahaler
while ($row = $query->fetch()) {
        echo "{$row->ID}";
        echo "{$row->Name}";
        echo "{$row->PrefixKod}";
        echo "{$row->FTPServer}";
        echo "{$row->FTPUser}";
        echo "{$row->FTPPassword}";
        echo "{$row->UpdOrgFTPPath}";
        echo "{$row->UpdOrgJurnalTemplate}";
        echo "{$row->UpdOrgUnicStr}";
        echo "{$row->UpdOrgSendMessageUser}";
        echo "{$row->UpdOrgTName}";
        echo "{$row->UpdOrgKodODU}";
        echo "{$row->UpdOrgKodKPO}";
        echo "{$row->UpdOrgFTPPort}";
  
    }
header('Content-Type: application/json');
exit(json_encode($query->fetchAll()));


На клиенте обходом в цикле получать каждое вставляя в соответствующее.
Ответить с цитированием
  #3 (permalink)  
Старый 26.11.2017, 18:25
Аспирант
Отправить личное сообщение для mazahaler Посмотреть профиль Найти все сообщения от mazahaler
 
Регистрация: 20.11.2017
Сообщений: 72

laimas,
спасибо, если вас не затруднит, можете показать пример, как на клиенте заполнить хотя-бы 1 поле?
Сам я в силу своего незнания не разберусь.
Ответить с цитированием
  #4 (permalink)  
Старый 26.11.2017, 19:00
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от mazahaler
можете показать пример
Могу, только сначала поясните что за странные данные из базы для одной формы, которые получаются посредством while? Таким образом выбирают множество строк из ресурса, а у вас по идее запрос в базу должен возвращать одну строку. Не так ли?

PS. Добавлю сразу:

$Name=strval($_POST['Name']); - так нельзя, это бесполезная галиматья, нужно экранировать данные, а у вас похоже используется PDO драйвер, значит нужно использовать подготовленные запросы с псевдоименами.
Как уже говорилось, по идее запрос должен вернуть одну строку, значит нужно использовать fetch(). Но по умолчанию эта функция вернет два набора данных, что передать на клиента как JSON будет логической ошибкой. Нужно задать выборку только необходимого - fetch(PDO::FETCH_ASSOC), если только получение ассоциативных данных уже не определено в конфигурации подключения.

Последний раз редактировалось laimas, 26.11.2017 в 19:29.
Ответить с цитированием
  #5 (permalink)  
Старый 26.11.2017, 20:01
Аспирант
Отправить личное сообщение для mazahaler Посмотреть профиль Найти все сообщения от mazahaler
 
Регистрация: 20.11.2017
Сообщений: 72

laimas,
большое спасибо, разобрался.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обновлять данные сервера и не выводить их повторно? Zamay jQuery 1 10.03.2017 00:43
Как передать данные в другую панель из выбранной строки таблицы. layout: 'card'. Пролетарий ExtJS 5 03.06.2015 22:53
Форма с чекбоксом, как вывести данные в другой блок tatynechka jQuery 1 15.04.2015 15:15
Как вывести данные JSON Dodik Общие вопросы Javascript 6 24.05.2013 11:52
Подскажите, пжлст, как вывести в тот же документ результат ф-ции? LexXxeL Элементы интерфейса 4 13.05.2009 13:26