2016-06-08 3 views
-1

Как я создаю сайт, который нуждается в Ajax для отправки POST-методов без обновления всей страницы.onClick Данные Ajax не работают

Я попытался использовать ajax для отправки данных из события onclick в теге LINK, но код ajax, похоже, отправляет сообщение EMPTY.

Это PHP/JQuery/Ajax код:

   <p id="school_content"> 
       </p> 
       <script src="js/jquery.js"></script> 
        <script type="text/javascript"> 
         $(document).ready(function() { 
          $(".toggleThis").click(function(){ 
           var Id = $(this).attr('id'); 

           $.ajax({ 
            contentType: "application/json; charset=utf-8", 
            url: "id_script.php", 
            type: "POST", 
            data: { 
              'school_name': Id, 
             }, 
             success: function(data){ 
              alert(Id); 
             }, 
            }); 

           $("#school_content").load("id_script.php"); 
          }); 
         }); 
        </script> 

LINK-тег имеет «идентификатор» в школе которым нужна информация, которая должна отображаться в ПУНКТА с «ид» «school_content "этой части jquery: $ (" # school_content "). load (" id_script.php "); ,

var Id = $ (this) .attr ('id'); часть работает, потому что он дает мне правильное имя школы в alert(); если я попрошу об этом.

id_script.php должен получить этот пост в обычном порядке, но не ..

Код id_script.php:

<?php 
include('connect.php'); 
header('Content-Type: application/json'); 
if(isset($_POST['school_name'])){ 
     $Id = $_POST['school_name']; 
     $extract = mysqli_query($con, "SELECT * FROM school_kaart WHERE school_name='$Id'"); 
     $numro=mysqli_num_rows($extract); 
      if(mysqli_num_rows($extract) == '1'){ 
       $row = mysqli_fetch_assoc($extract); 
       echo 'Yes it works!'; 
      } 
      else{ 
       echo 'Nope, didnt work!'; 
      } 
} 
else{ 
     echo 'Not posted!'; 
} 

?> 

Я все еще получаю «Не в курсе! " в предыдущем параграфе. В чем проблема?

+0

проверить заголовки. 'Content-type' - тот, который, вероятно, отсутствует. Ваш PHP может не ожидать данных JSON. – deltree

ответ

0

.load является сокращением для запроса ajax, поэтому вы фактически выполняете 2 запроса. Последнее не отправляет никаких данных и поэтому возвращает «Не отправлено!»;

http://api.jquery.com/load/

попробовать

  <script src="js/jquery.js"></script> 
       <script type="text/javascript"> 
        $(document).ready(function() { 
         $(".toggleThis").click(function(){ 
          var Id = $(this).attr('id'); 

          $.ajax({ 
           url: "id_script.php", 
           type: "POST", 
           data: { 
             'school_name': Id, 
            }, 
            success: function(data){ 
             alert(Id); 
             $("#school_content").html(data); 
            }, 
           }); 


           //remove this 
          //$("#school_content").load("id_script.php"); 
         }); 
        }); 
       </script> 
+0

@RikEckhardt remove 'header ('Content-Type: application/json');' потому что вы фактически не отправляете json-данные. – bassxzero

+0

@RikEckhardt сделал эту работу? – bassxzero

+0

Спасибо, он работает после объединения обоих комментариев! –