Данные отсутствуют при отправке через AJAX - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу отправить два значения в мой PHP скрипт, который вызывается из запроса AJAX. Почему-то мои данные не передаются в скрипт PHP.

Может, я что-то делаю не так. Могу ли я иметь некоторое представление?

    $(function() {

        $(".delbutton").click(function() {
                var viewed_comments = $("#viewed_comments").val();
                var del_id = $(this).attr("id");

                var info = 'id=' + del_id;
                var comments = 'comm=' + viewed_comments;
                var tr = $(this).closest('tr');  

            if (confirm("Are you sure to mark this as viewed?")) {

                $.ajax({
                    type : "POST",
                    url : "update_entry.php", 
                    dataType: "json",
                    data: {info:info, comments:comments },

                    success : function(response) {

                           if(response=="updation success"){
                           console.log('inside');


                           }
                    }
                });  
            }
            return false;
        });
    });

И мой PHP, куда идет запрос AJAX,

    $id     =   $_POST['id'];
  $viewed_comments = $_POST['comm'];
  $level_code  = $_SESSION['level_code'];
  $action   =   'view';
  $viewed_date = date("Y-m-d");    
  $viewed_by        =    $_SESSION['session_admin_id'] ;

  if($action    == 'view')
  { 
   $viewed_date = date('Y-m-d h:i:s');  

   $nots = $db->idToField("tbl_table","notes",$id);
   if ($nots == "")
   {
   $date_string = "last viewed on|".$viewed_date."|" ;
   }
   else {
   $date_string = $nots."last viewed on|".$viewed_date."|" ;
   }
      $fnc->update_is_viewed_for("tbl_table",$id, "$viewed_date", $viewed_by);        
    $notes_data = array("notes"=>$date_string,"viewed_comments"=>$viewed_comments);
    $db->query_update("tbl_table", $notes_data, "id=$id");
     }
    if($db->query_update("tbl_table", $notes_data, "id=$id")){
      http_response_code();        
      echo json_encode('updation success');
    }else{
       http_response_code(204);       
    } 

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Используйте значения формы seriliaze, чтобы решить проблему отсутствия данных , замените #frm на идентификатор формы

 $(document).ready(function(){
    $('#frm').submit(function(event){
    event.preventDefault();
    var formValues = $(this).serialize();
        $.ajax({
        url:"update_entry.php",
        method:"POST",
        data:formValues,
        dataType:"JSON",
            success:function(data){
               if (data == 'updation success') {
                console.log('success');
               }
            }
        });
    });
});
0 голосов
/ 04 февраля 2020

Разве это не имя? Вы отправляете две переменные POST:

data: {
          info: info,
          comments: comments
        },

, но извлекаете их с разными именами:

    $id     =   $_POST['id'];
  $viewed_comments = $_POST['comm'];

Что вы получите, если вы var_dump($_POST);?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...