Не удается получить уникальные данные на основе уникального щелчка формы, отправленного на php с помощью AJAX

#javascript #php #jquery #ajax

#javascript #php #jquery #ajax

Вопрос:

Я пытаюсь настроить страницу, на которой отображаются наблюдения, и если щелкнуть по одному из наблюдений, то он отправит номер наблюдения, по которому щелкнули, в php. Затем, когда они будут перенаправлены на экран сведений, он заполнит детали наблюдения, по которому щелкнули. Я перепробовал много разных способов сделать это, поэтому мой код вроде как везде, но кажется, что независимо от того, как я это делаю, либо Ajax не отправляет данные, либо каждый раз отправляет один и тот же номер наблюдения. Мне кажется, что атрибут данных AJAX не может справиться с i. Это создается в Intel XDK, который является разработчиком приложений html5. Вот почему это сложно, потому что я не могу использовать инструменты разработчика браузера для отладки.

Javascript

  <script>
  $(document).ready(function(){    
   $.ajax({
     url: "http://localhost/observationMain.php",
     data: { action: "observationID" },
     type: 'post',
     dataType: 'json',
     success: function(observationID){
         for(i = 0; i <= observationID.length; i  )

         {

            $("#observationMainListView").append("<form id='form" i "'' method='post'><a id='observation" i "' class='list-group-item allow-badge widget uib_w_" (i 4) "' data-uib='twitter bootstrap/list_item' data-ver='1'><h4 id='observationNum" i "' class='list-group-item-heading'>" observationID[i][0] "</h4><p class='list-group-item-text'>" observationID[i][1] "</p></a><input name='observationNum' value='" observationID[i][0] "'></form>");


             $("#observation" i "").click(function(){
                    $.ajax({
                    url: "http://localhost/observationDetail.php",
                    data: $("#form" i "").serialize(),
                    type: 'post',
                    success: function(observationNum){
                             document.location.href = 'observationDetail.html';   
                    }
                    });

                });

        }
    }
    });

    });


</script>
  

php

 <?php
session_start();

if(isset($_POST['observationNum'])){
$_SESSION['observationNum'] = $_POST['observationNum'];
}
?>
  

Комментарии:

1. Вы делаете это на веб-сервере? Вы смотрели запрос / ответ в инструментах разработчика браузера? Вы правильно установили библиотеку jQuery?

2. Если вы проверяете список cteated при загрузке страницы, имеет ли ввод правильное значение observationNum ? Также дайте ему type="number" возможность правильно их сформировать.

3. @JayBlanchard Я только что отредактировал вопрос, но я делаю это в intel XDK, разработчике приложений html5. Библиотека включена правильно, потому что я использовал ajax и jQuery в других частях приложения, и это работает нормально.

4. @Searching Да, потому что я вижу поле ввода, и в нем указаны правильные цифры.

5. Попробуйте установить данные вручную в ajax send и проверьте, принимает ли серверная часть это значение. Вы добавили входные данные type и id ? У вас есть это для заголовка ur, но не для входных данных. Убедитесь, что имя и идентификатор уникальны. Сообщите нам, когда вы найдете

Ответ №1:

Это может показаться безумием, но проверьте эту строку.Свойство id формы имеет дополнительный ' , возможно, это и является причиной проблемы.

 $("#observationMainListView").append("<form id='form"   i   "'' method='post'
  

Я не могу запустить сценарий, но просто даю ему шанс.