Добрый день! Есть такая проблема , я хочу сделать так , чтобы после выбора значения с помощью тэга select из базы, остальные значения вставлялись в инпут автоматически. Т.е , у меня есть например селект клиенты, выбираю какого-нибудь и соответственно остальная информация об этом клиенте добавляется динамически в инпут поля. Реализацию я нашел, помоему даже на этом фороме : Есть индекс : HTML: <script type="text/javascript" src="jquery.js"></script> </head> <body> <form method="post" action="#"> <script type="text/javascript"> $(function() { $('#client').change(function() { $.post('client.php',{id: $("#client option:selected").val()}, function(r){ if(r.length>0) $("input#phone").val(r);} ); }) }); </script> <select id="client"> <option selected="selected">--Select client--</option> <?php include('db.php'); $sql=mysql_query("SELECT cl_id, name FROM tab_clients"); while($row=mysql_fetch_array($sql)) { $id=$row['cl_id']; $data=$row['name']; echo '<option value="'.$id.'">'.$data.'</option>'; } ?> </select> <br/><br/> <input TYPE="text" NAME="phone" id="phone"/> <input TYPE="text" NAME="addr" id="addr"/> </form> </body> Где выбирается из базы значение и затем передается в сценарий , где из вьюшки отсортировывется инфо для инпут PHP: <? $host = "localhost"; $user = "root"; $password = ""; $db = "pca_project"; mysql_connect ($host, $user, $password) or die("Ошибка соединения с сервером: " .mysql_error()); mysql_select_db ($db) or die("Ошибка соединения с базой данных : ".mysql_error()); $lot = intval($_POST['id']); $query = "SELECT * FROM vw_client_info WHERE cl_id ='$lot'"; $result = mysql_query ($query) or die("Неправильный запрос : " . mysql_error()); if(mysql_num_rows($result)== '1') { $row=mysql_fetch_assoc($result); $phone = $row['phone']; $addr = $row['addr']; print $phone; } ?> вроде всё работает , но это если добавлять в инпут одно значение из вью, а как сделать чтобы передавалось ещё одно значение в следующий инпут. Т.е. у меня например клиент.телефон, клиент.адрес. Пытался сделать из пхп так : $phone = $row['phone']; $addr = $row['addr']; Он тогда в оба инпута закидывает два эти значения, т.е. не разделяет. Хоть я и передал в инпут разные ид : <input TYPE="text" NAME="phone" id="phone"/> <input TYPE="text" NAME="addr" id="addr"/> Заранее огромное спасибо.
выброси всю инфу в массив в яваскрипте. и по выбранному id из селекта выбирай из массива все те значения, которые тебе интересны и пихай куда хочешь.
Вариант возможно неплохой...А каким образом можно передать ответные данные в jquery из php? Просто в моем случае ид передается в пхп где происходит селект по остальным данным о клиенте. Не могу понять каким образом можно передать результат селекта в js? Cпасибо!
ну ты когда страничку отрисовываешь, ты пишешь echo "<script>" и после любые данные, предназначенные для явваскрипта. Только лучше данные писать прямо в скрипт, а методы вызывать изнутри $(document).ready(function() { результат селекта в js передается с помощью jquery и гугла "jquery get select value". Попробуй $('#client').val() только надо на событие вешаться, на изменение. <select id='client' onChange="process();">
Не, ну у меня так и реализовано И гугл особо не выдает то, что нужно. Дело в том что есть в хтмл : HTML: <select id="client"> <option selected="selected">--Select client--</option> <?php include('db.php'); $sql=mysql_query("SELECT cl_id, name FROM tab_clients"); while($row=mysql_fetch_array($sql)) { $id=$row['cl_id']; $data=$row['name']; echo '<option value="'.$id.'">'.$data.'</option>'; } ?> </select> <br/><br/> <input TYPE="text" NAME="phone" id="phone"/> <input TYPE="text" NAME="addr" id="addr"/> И есть ява скрипт : [js] script type="text/javascript"> $(function() { $('#client').change(function() { $.post('client.php',{id: $("#client option:selected").val()}, function(r){ if(r.length>0) $("input#phone").val(r);} ); }) }); </script> [/js] который получает и селекта ид , передаёт его в пхп сценарий $.post('client.php',{id: $("#client option:selected").val()}, где есть view PHP: $query = "SELECT * FROM vw_client_info WHERE cl_id ='$lot'"; $result = mysql_query ($query) or die("Неправильный запрос : " . mysql_error()); if(mysql_num_rows($result)== '1') { $row=mysql_fetch_assoc($result); $phone = $row['phone']; $addr = $row['addr']; print $phone; } ?> Вооот...а дальше пхп возвращает значение в js -> print $phone; и дальше ява передает значение в <input> . [js] function(r){ if(r.length>0) $("input#phone").val(r);} ); [/js] Просто необходимо вернуть значение из пхп не только phone , но ещё и например адрес, отобранный из того же view. Но это не получается, потому что возвращается из пхп просто данные , без каких либо отдельныз переменных. Т.е. если я в пхп сделаю так : print $phone; print $addre; то вернётся строчка типа : 23232343 Moscow .... И эта строчка пойдет одинаково в оба инпута. А я бы хотел чтобы отдельно шло print $phone; <input TYPE="text" NAME="phone" id="phone"/> и отдельно print $addres; <input TYPE="text" NAME="phone" id="phone"/>. Вот как сделать это не пойму. Ведь у меня используется отбор из бд. Кто-нибудь знает? Подскажите плиз
мельком просмотрел , вижу фразу юзаем json , в пхп файле выводим в в массив который красиво выводим в ответе json http://www.php.ru/forum/viewtopic.php?t=32010