2013-09-15 4 views
1

Я новичок в ajax и JQuery. Я написал код, чтобы автопопулить поле со списком с помощью вызова ajax в моей форме, которую я разрабатываю. Теперь я хочу, чтобы остальные поля одной формы были автопотолированы на основе выбранного значения из поля со списком, и для этого мне нужен еще один вызов ajax, который вернет мне только один объект из student. С помощью этого объекта можно задать поля формы, как таким образом:Форма автопопуляции на основе выбранного значения из поля со списком с JQuery и Ajax

$('#student_name').val(student.name); $('#student_roll_num').val(student.roll_num); etc.

где имя, roll_num является идентификатором поля формы.

Я пишу в этом следующим образом:

//This following function will get called when one value from the combo box is 
//selected 

$("select#student_id").change(function(){ 
    var student_id = $(this).val(); //Here I am getting the selected value from 
    //the combo box 
    $.ajax({ 
     url: "/students_database?student_id="+student_id, //this is the url that will 
     //send me one student object 
     dataType: "json", 
     success: /*YET TO BE FILLED WITH CODE TO AUTO 
     /* POPULATE REST OF THE FIELDS*/ 
}); 

На самом деле здесь я не могу решить, как получить доступ к перенастроена объект студент, так что я могу получить доступ к его полям, как выше я сказал. Поэтому, если кто-то любезно поможет мне сделать это, я буду очень благодарен. Пожалуйста, предложите также, если есть лучший подход. Спасибо.

+0

вы можете добавить HTML, который вы используете и/или сделать jsfiddle? – dax

ответ

0

Предполагая, что вы получите JSON одного студента из вашего AJAX вызова, это должно работать:

$("select#student_id").change(function(){ 
    var student_id = $(this).val(); //Here I am getting the selected value from 
    //the combo box 
    $.ajax({ 
     url: "/students_database?student_id="+student_id, //this is the url that will 
     //send me one student object 
     dataType: "json", 
     success: function(student) { 
      $('#student_name').val(student.name); 
      $('#student_roll_num').val(student.roll_num); 
     }  
    }); 
}); 
+0

Это не работает. Я не понимаю, где происходит ошибка. На самом деле я заполнил поле со списком со студенческим именем. Здесь, когда я использую student.roll_num, это говорит о неразрешенной переменной. Итак, как я могу получить доступ к другим членам студенческого объекта? – Joy

+0

Также в соответствии с вашим подходом ученик.имя и student.roll_num гаснут, хотя они не являются нулевыми – Joy

+0

@ Джой, может быть, ваш призыв ajax не возвращает то, что вы ожидаете? попробуйте напечатать JSON.stringify (учащийся) в функции успеха, чтобы увидеть, что фактически возвращается – drorw

Смежные вопросы