В ява коде есть строчка Код (Text): new_input.innerHTML='<br><select name="fio"><option>Иванов</option><option>Петров</option><option>Сдоров</option></select>'; Хочу чтобы селект подгружал из таблицы, вот php код Код (Text): <select name="fio"> <? $result5 = mysql_query("SELECT id,fioz FROM users",$db); if (!$result5) {echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору. <br> <strong>Код ошибки:</strong></p>"; exit(mysql_error());} if (mysql_num_rows($result5) > 0) {$myrow5 = mysql_fetch_array($result5); do {printf ("<option value='%s'>%s</option>",$myrow5["id"],$myrow5["fioz"]);} while ($myrow5 = mysql_fetch_array($result5));} else {echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>"; exit();} ?> </select> В обычной форме работает, как сделать в ява через innerHTML ?
Короче используй просто jquery да и все или используй прямую функцию Код (Text): function setOuterHTML(ElementID, newcode) { var someElement = document.getElementById(ElementID); if (someElement.outerHTML) // if not Firefox { someElement.outerHTML = newcode; } else // if Firefox { var range = document.createRange(); range.setStartBefore(someElement); var docFrag = range.createContextualFragment(newcode); someElement.parentNode.replaceChild(docFrag, someElement); } }
Java!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! блин это не javascript.
Задача не совсем понятна. Растолкуй подробнее. На сколько я понял, ты хочешь, чтобы раскрывающийся список генерировался без перезагрузки страницы? Т.е. когда на сайте происходит некое событие - JavaScript загружает с сервера список фамилий и засовывает его в раскрывающийся список? Если так, то рассмотри и разберись как работает следующий пример - это то, что тебе нужно. В моей реализации будет два файла. Первый файл: test.html. Содержит сам раскрывающийся список, кнопку (при нажатии на которую JavaScript получит данные от сервера и вставит их в селект) и сам JavaScript-код, который это делает: Код (Text): <html> <head> <title>Тест</title> <script type="text/javascript"> function loadSelect() { var xmlHttp = false; if(window.XMLHttpRequest) xmlHttp = new XMLHttpRequest(); else if(window.ActiveXObject) xmlHttp = new ActiveXObject('Microsoft.XMLHTTP'); if(xmlHttp) { dateObj = new Date(); xmlHttp.open('GET', 'getFamilies.php?rnd=' + dateObj.getTime()); xmlHttp.onreadystatechange = function() { if(xmlHttp.readyState == 4 && xmlHttp.status == 200) { var opts = xmlHttp.responseText.split("\n"); var sel = document.getElementById('my_select'); while(sel.options.length > 1) sel.removeChild(sel.selectedIndex); var opt = false; for(i in opts) { opts[i] = opts[i].split(';'); opt = document.createElement('option'); opt.value = opts[i][0]; opt.innerHTML = opts[i][1]; sel.appendChild(opt); } } } xmlHttp.send(null); } } </script> </head> <body> Ваша фамилия: <select name="fio" id="my_select"> <option value="0" selected="selected">Выберите...</option> </select> <br /> <br /> <input type="button" value="Загрузить фамилии!" onclick="javascript: loadSelect()" /> </body> </html> Второй файл: getFamilies.php. В нём находится PHP-скрипт, к которому обращается JavaScript и который отправляет в ответ список фамилий. Для упрощения, в примере я получаю список фамилий и их ID не из б.д., а просто прописал массив с данными вручную. Ты можешь получать эти данные откуда тебе нужно - хоть из б.д., хоть из файла и т.п. Код (PHP): <?php $families = array( 1 => 'Иванов', 2 => 'Петров', 3 => 'Сидоров' ); header('Content-type: text/plain; charset=utf-8'); $out = ''; foreach($families as $id => $family) { $family = str_replace("\n", '', $family); $out .= $id . ';' . htmlspecialchars($family) . "\n"; } $out = substr($out, 0, strlen($out) - 1); echo($out); ?>
Что то не получается, это динамическое поле. Мне нужно именно чтобы вот здесь грузился select new_input.innerHTML='<br><select name="fio"><option>Иванов</option><option>Петров</option><option>Сдоров</option></select>';
Моя твоя не понимать... Что значит, "чтобы вот здесь грузился select"? Попробуй для начала как можно подробнее просто словами описать, что ты хочешь. А там, глядишь, и у самого решение нарисуется Такое не раз бывало - когда начинаешь писать нормальный обстоятельный вопрос, чтобы другие поняли тебя - решение вдруг само приходит и просто стираешь всё написанное В том примере, который я привёл выше - наглядно (ну, мне так кажется, что наглядно) показано, как JavaScript может обратиться к серверу (PHP), запросить какие-то данные, получить и обработать ответ, вставив его в нужное место. Разберись как работает этот пример, скопируй его себе и поэкспериментируй. Тебе, видимо, нужно просто вставить полученные данные в какое-то другое место...
Есть форма, где динамически добавляются поля с помощью java. Это выпадающий список. Этот список должен подгружаться из бд.
И в этом случае приведённый выше пример тебе подойдёт. Просто в том примере сам select на странице уже существует. Динамически создаются только опции. Тебе нужно немного поправить, чтобы сперва динамически создавался select (примерно также, как и опции), а потом уже создавались опции и пихались в только что созданный select. Потом привязать созданный select к какому-то уже существующему на странице элементу.
Почитать про то, какие ещё события бывают в DHTML. Например, можно повесить выполнение какой-то функции на onload для <body>. Тогда функция будет вызываться в момент, когда страница загрузилась браузером. Добавлено спустя 49 секунд: Или что ты понимаешь под "автоматически"?