За последние 24 часа нас посетили 18733 программиста и 1702 робота. Сейчас ищут 853 программиста ...

innerHTML в Java

Тема в разделе "Прочие вопросы по PHP", создана пользователем shakirbar, 24 фев 2012.

  1. shakirbar

    shakirbar Активный пользователь

    С нами с:
    30 сен 2011
    Сообщения:
    82
    Симпатии:
    0
    В ява коде есть строчка
    Код (Text):
    1. new_input.innerHTML='<br><select name="fio"><option>Иванов</option><option>Петров</option><option>Сдоров</option></select>';
    Хочу чтобы селект подгружал из таблицы, вот php код

    Код (Text):
    1.  
    2. <select name="fio">
    3. <?
    4. $result5 = mysql_query("SELECT id,fioz FROM users",$db);
    5. if (!$result5)
    6. {echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору. <br> <strong>Код ошибки:</strong></p>";
    7. exit(mysql_error());}
    8. if (mysql_num_rows($result5) > 0)
    9. {$myrow5 = mysql_fetch_array($result5);
    10. do
    11. {printf ("<option value='%s'>%s</option>",$myrow5["id"],$myrow5["fioz"]);}
    12. while ($myrow5 = mysql_fetch_array($result5));}
    13. else
    14. {echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
    15. exit();}
    16. ?>
    17. </select>
    В обычной форме работает, как сделать в ява через innerHTML ?
     
  2. denkog

    denkog Активный пользователь

    С нами с:
    24 фев 2012
    Сообщения:
    7
    Симпатии:
    0
    Короче используй просто jquery да и все
    или используй прямую функцию
    Код (Text):
    1.     function setOuterHTML(ElementID, newcode)
    2.     {
    3.      var someElement = document.getElementById(ElementID);
    4.      if (someElement.outerHTML) // if not Firefox
    5.      { someElement.outerHTML = newcode; }
    6.      else // if Firefox
    7.      {
    8.          var range = document.createRange();
    9.          range.setStartBefore(someElement);
    10.          var docFrag = range.createContextualFragment(newcode);
    11.          someElement.parentNode.replaceChild(docFrag, someElement);
    12.      }
    13.     }
     
  3. shakirbar

    shakirbar Активный пользователь

    С нами с:
    30 сен 2011
    Сообщения:
    82
    Симпатии:
    0
    С jquery не хочется, можно как нибудь по другому?
     
  4. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Java!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    блин это не javascript.
     
  5. shakirbar

    shakirbar Активный пользователь

    С нами с:
    30 сен 2011
    Сообщения:
    82
    Симпатии:
    0
    Круто!!! Your, какие соображения? Код в студию.
     
  6. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Задача не совсем понятна. Растолкуй подробнее. На сколько я понял, ты хочешь, чтобы раскрывающийся список генерировался без перезагрузки страницы? Т.е. когда на сайте происходит некое событие - JavaScript загружает с сервера список фамилий и засовывает его в раскрывающийся список? Если так, то рассмотри и разберись как работает следующий пример - это то, что тебе нужно. В моей реализации будет два файла.

    Первый файл: test.html. Содержит сам раскрывающийся список, кнопку (при нажатии на которую JavaScript получит данные от сервера и вставит их в селект) и сам JavaScript-код, который это делает:
    Код (Text):
    1. <html>
    2.     <head>
    3.         <title>Тест</title>
    4.         <script type="text/javascript">
    5.             function loadSelect() {
    6.                 var xmlHttp = false;
    7.                 if(window.XMLHttpRequest)
    8.                     xmlHttp = new XMLHttpRequest();
    9.                 else if(window.ActiveXObject)
    10.                     xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
    11.                 if(xmlHttp) {
    12.                     dateObj = new Date();
    13.                     xmlHttp.open('GET', 'getFamilies.php?rnd=' + dateObj.getTime());
    14.                     xmlHttp.onreadystatechange = function() {
    15.                         if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
    16.                             var opts = xmlHttp.responseText.split("\n");
    17.                             var sel = document.getElementById('my_select');
    18.                             while(sel.options.length > 1)
    19.                                 sel.removeChild(sel.selectedIndex);
    20.                             var opt = false;
    21.                             for(i in opts) {
    22.                                 opts[i] = opts[i].split(';');
    23.                                 opt = document.createElement('option');
    24.                                 opt.value = opts[i][0];
    25.                                 opt.innerHTML = opts[i][1];
    26.                                 sel.appendChild(opt);
    27.                             }
    28.                         }
    29.                     }
    30.                     xmlHttp.send(null);
    31.                 }
    32.             }
    33.         </script>
    34.     </head>
    35.     <body>
    36.         Ваша фамилия:
    37.         <select name="fio" id="my_select">
    38.             <option value="0" selected="selected">Выберите...</option>
    39.         </select>
    40.         <br />
    41.         <br />
    42.         <input type="button" value="Загрузить фамилии!" onclick="javascript: loadSelect()" />
    43.     </body>
    44. </html>
    Второй файл: getFamilies.php. В нём находится PHP-скрипт, к которому обращается JavaScript и который отправляет в ответ список фамилий. Для упрощения, в примере я получаю список фамилий и их ID не из б.д., а просто прописал массив с данными вручную. Ты можешь получать эти данные откуда тебе нужно - хоть из б.д., хоть из файла и т.п.
    Код (PHP):
    1. <?php
    2. $families = array(
    3.     1 => 'Иванов',
    4.     2 => 'Петров',
    5.     3 => 'Сидоров'
    6. );
    7. header('Content-type: text/plain; charset=utf-8');
    8. $out = '';
    9. foreach($families as $id => $family) {
    10.     $family = str_replace("\n", '', $family);
    11.     $out .= $id . ';' . htmlspecialchars($family) . "\n";
    12. }
    13. $out = substr($out, 0, strlen($out) - 1);
    14. echo($out);
    15. ?>
     
  7. shakirbar

    shakirbar Активный пользователь

    С нами с:
    30 сен 2011
    Сообщения:
    82
    Симпатии:
    0
    Спасибо. Что то вроде этого. У меня динамичски добавляется элемент. Сейчас покалдую.
     
  8. shakirbar

    shakirbar Активный пользователь

    С нами с:
    30 сен 2011
    Сообщения:
    82
    Симпатии:
    0
    Что то не получается, это динамическое поле. Мне нужно именно чтобы вот здесь грузился select
    new_input.innerHTML='<br><select name="fio"><option>Иванов</option><option>Петров</option><option>Сдоров</option></select>';
     
  9. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Моя твоя не понимать... Что значит, "чтобы вот здесь грузился select"?

    Попробуй для начала как можно подробнее просто словами описать, что ты хочешь. А там, глядишь, и у самого решение нарисуется :) Такое не раз бывало - когда начинаешь писать нормальный обстоятельный вопрос, чтобы другие поняли тебя - решение вдруг само приходит и просто стираешь всё написанное :)

    В том примере, который я привёл выше - наглядно (ну, мне так кажется, что наглядно) показано, как JavaScript может обратиться к серверу (PHP), запросить какие-то данные, получить и обработать ответ, вставив его в нужное место. Разберись как работает этот пример, скопируй его себе и поэкспериментируй. Тебе, видимо, нужно просто вставить полученные данные в какое-то другое место...
     
  10. shakirbar

    shakirbar Активный пользователь

    С нами с:
    30 сен 2011
    Сообщения:
    82
    Симпатии:
    0
    Есть форма, где динамически добавляются поля с помощью java. Это выпадающий список. Этот список должен подгружаться из бд.
     
  11. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    И в этом случае приведённый выше пример тебе подойдёт. Просто в том примере сам select на странице уже существует. Динамически создаются только опции. Тебе нужно немного поправить, чтобы сперва динамически создавался select (примерно также, как и опции), а потом уже создавались опции и пихались в только что созданный select. Потом привязать созданный select к какому-то уже существующему на странице элементу.
     
  12. shakirbar

    shakirbar Активный пользователь

    С нами с:
    30 сен 2011
    Сообщения:
    82
    Симпатии:
    0
    Как сделать чтобы грузился автоматически, а не по нажатию кнопки?
     
  13. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Почитать про то, какие ещё события бывают в DHTML. Например, можно повесить выполнение какой-то функции на onload для <body>. Тогда функция будет вызываться в момент, когда страница загрузилась браузером.

    Добавлено спустя 49 секунд:
    Или что ты понимаешь под "автоматически"?
     
  14. shakirbar

    shakirbar Активный пользователь

    С нами с:
    30 сен 2011
    Сообщения:
    82
    Симпатии:
    0
    Да, это имел ввиду, все разобрался, спасибо!