Привет, у меня есть этот код, который вытащит имя и адрес клиента из базы данных. Это echo выводит имя клиента для каждой записи в раскрывающийся список ( <option value="<?php echo "$client" ?>"><?php echo "$client" ?></option>
), который выполняется в в то время как цикл. Тогда у меня есть Javascript, который изменит innerHTML DIV с именем «content», когда вы выберете опцию в раскрывающемся списке – это уникально на основе того, что вытащили из базы данных. – Вот где я не могу заставить его работать .. ниже мой код любая помощь очень ценится.
<div id="selectBox"> <div class="ui-widget"> <form> <label>Select a Client:</label> <select id="combobox" > <option value="">Select...</option> <?php include "db_conn.php"; callDB(); function callDB(){ $sql = 'SELECT * FROM clientlist'; $query = mysql_query($sql) or die(mysql_error()); while ($row = mysql_fetch_array($query)) { $ID= $row['id']; $client= $row["client"]; $postal_add= $row["postal_add"]; ?> <option value="<?php echo "$client" ?>"><?php echo "$client" ?></option> <?php }} ?> </select> </form> </div> </div> <br> <div id="content"> </div> </div> <script type="text/javascript"> // Script for changing Div function change() { switch (document.getElementById("combobox").value) { case "<?php echo $client ?>": document.getElementById("content").innerHTML = "<h2><?php echo $client ?></h2><b>Postal Address:</b> <?php echo $postal_add ?>" break; } } </script>
К тому времени, когда выполняется Javascript (Клиент), PHP уже завершен (Сервер). Вам нужно будет создать Javascript из PHP внутри While-Loop и отправить его в браузер позже на странице:
// in while $javascript .= "case $client: document.getElementById('content').innerHTML = '<h2>$client</h2> <b>Postal Address:</b>$postal_add' break;" // later in page switch (document.getElementById("combobox").value) { <?php echo $javascript; ?> }
Вы создали функцию для заполнения элемента div. Однако в это время эта функция определена только, она никогда не выполняется.
вам нужно настроить обработчик onchange для окна выбора, чтобы вызвать функцию javascript.
Кроме того, php, который выводится в ваш javascript, находится вне вашего цикла while.
Вам не хватает слова с запятой в словах <?php echo "$client" ?>
. Это должен быть <?php echo "$client"; ?>
<?php echo "$client"; ?>
. EDIT: на самом деле это не нужно, окончание?> Автоматически закрывает оператор.
Чтобы добавить еще несколько, поскольку @Witty сказал, что вы не храните переменную $ client за пределами своего цикла, так что вы не можете получить к ней доступ! Измените это!
использовать ajax для обновления вашего div на ebasis выбранного параметра из выпадающего меню
$('#dropdown').change(function() { var id = $("#option").val(); var url = ajax action from where u will get the data for the selected option var data = {OptionID:id}; $.ajax({ type: 'POST', url: url, data: data, success: function(data) { append the values in div here using div.innerhtml }); });