Ajax-получение определенного значения из данных и перевод в текстовое поле?

У меня есть рабочий Ajax, который извлекает данные до 10 столбцов.
Я хочу поместить данные первой колонки в учебник, но не удалось.

Я попробовал следующую строку, но текстовое поле data to не отображается:

$(‘#stud_id’).val (data.id);

Есть помощь?

Аякс:

  <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/jquery-ui-1.8.17.custom.min.js"></script>
    <script src="../jQueryAssets/jquery-1.11.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#button").click(function(){
        var student_id=$("#student_id").val();
        $.ajax({
        type:"post",
        url:"paymentProcess.php",
        data:"student_id="+student_id,
        beforeSend: function(){
        $("#info").html("<h1>Pleas Wait working...</h1>");
},
success:function(data){
    $('#stud_id').val(data.id);
    $("#frmPayment").css("visibility","visible");
$("#info").html(data);

}});
});
});
</script>

текстовое поле:

 <input type="text" name="student_id" id="student_id" placeholder="Enter Student ID"/>

Рабочий запрос:

<?php
  $expected;
$stud_id=$_POST['student_id'];
$stud_payment="select st.id, st.stud_fname, st.stud_lname, st.stud_middle_name,org.Instname as Institute, dp.dep_name, st.entry_year,sum(sc.total_fee) as 'Expected Fee'
from student st inner join department dp on st.dep_id=dp.id
left join st_costshare sc on sc.stud_id=st.id
inner join college cl on cl.id=dp.college_id
inner join organization org on org.id=cl.inst_id
where st.id='{$stud_id}'
group by sc.stud_id limit 1
";

2 ответа

  1. Что генерирует php для js?

    Вы пытаетесь получить доступ к данным.id», который будет проблемой, если вы не получите json через свой ajax-вызов.

    Если вы отправляете что-то вроде этого:
    {‘id’: ‘your id’}

    или

    [ {'id':'your id'} , {'id':'your second id'} ]
    

    и измените свой js на:

    $.ajax({
            type:"post",
            dataType:"json"
    });
    

    У вас будет объект, а не строка.

    Пожалуйста, сделайте именно то, что рекомендовали ребята в комментариях

    //in your success callback  
    console.log(data)
    

    Если вы не знаете, как получить эти данные журнала, используйте это:

    https://developer.chrome.com/devtools

  2. Строка $('#stud_id').val(data.id);говорит: найти входной элемент с id="stud_id"и установить его значение data.id.

    Есть ли элемент сid="stud_id", и это <input.../>или что-то еще? Если это (например) а<div.../>, то вам было бы нужно.text(), а не .val().

    Заменить $('#stud_id').val(data.id);на $('#stud_id').val('Test');. Если слово Test появляется в текстовом поле, то проблема с data.id. Поместите точку останова в начало обработчика успеха и посмотрите, что dataи data.idна самом деле.

    Кроме того, похоже, что у вас может быть уязвимость SQL-инъекции на стороне PHP. Вы должны прочитать об этом. Как вещи стоят есть хороший шанс, что кто-то может удалить все ваши студенческие записи, просто введя ';delete from students;--в качестве своего идентификатора.