2016-12-26 2 views
-1

Примечание: Undefined индекс: в сообщения дан C: \ XAMPP \ HTDOCS \ Аякса-полный \ save_post.php на линии 4 Примечание: Undefined индекс: postTitle в C: \ XAMPP \ HTDOCS \ Аякс-полный \ save_post.php на линию 8 Примечание: Undefined индекс: postDescription в C: \ XAMPP \ HTDOCS \ Аякс-полный \ save_post.php на линии 8показывает Undefined индекс при вставке данных в базу данных

<?php 
     $conn = mysqli_connect("localhost","root","","ajax_complete"); 

     if($_POST["postId"] != ''){ 
      $sql = "UPDATE tbl_post SET post_title ='".$_POST['postTitle']."', post_description = '".$_POST['postDescription']."' WHERE id ='".$_POST['postId']."'" ; 
      mysqli_query($conn,$sql); 
     }else{ 
      $sql = "INSERT INTO tbl_post (post_title,post_description,post_status) VALUES('".$_POST['postTitle']."','".$_POST['postDescription']."','draft')"; 
      mysqli_query($conn,$sql); 
      echo mysqli_insert_id($conn); 
     } 
    ?> 

HTML КОД ПРЕДОСТАВЛЯЕТСЯ НИЖЕ

<h3>Auto save data </h3> 
     <div class="form-group">  
      <lable>Post Title</lable> 
      <input type="text" name="post_title" id="post_title" class="form-control"/> 
     </div> 
     <div class="form-group">  
      <lable>Post Description</lable> 
      <input type="text" name="post_description" id="post_description" class="form-control"/> 
     </div> 
     <div class="form-group">  
      <input type="hidden" name="post_id" id="post_id" class="form-control"/> 
     </div> 
     <div id="autosave"></div> 
    </div> 
    <script src="./js/jquery-1.11.2.min.js" type="text/javascript"></script> 
    <script> 
     $(document).ready(function(){ 
      function autosave(){ 
       var post_title = $('#post_title').val(); 
       var post_description = $('#post_description').val(); 
       var post_id = $('#post_id').val(); 
       if(post_title != '' && post_description != '') 
       { 
        $.ajax({ 
         url:"save_post.php", 
         method:"POST", 
         data:{postTitle:post_title,postDescription:post_description,postId:post_id}, 
         dataType:"text", 
         success:function(data){ 
          if(data != ''){ 
           $('#post_id').val(data); 
          } 
          $('#autosave').text('post save in DB'); 
          setInterval(function(){ 
           $('#autosave').text(''); 
          },2000); 
         } 
        }); 
       } 
      } 
      setInterval(function(){ 
       autosave(); 
      },10000); 

     }); 
    </script> 
    <script> 
+0

Можете ли вы разместить свой код формы тоже? '$ _POST' не определен – Panda

+0

Я отправляю данные с помощью ajax и его showin на этой странице, если im использует Print_r ($ _ POST); exitl –

+0

Просьба также предоставить вашу html-форму код ... –

ответ

0

Когда страница загружена в браузере, способ структурирования вашего кода оценивается if($_POST["postId"] != ''); но поскольку это простая загрузка страницы, нет массива $_POST и, следовательно, предупреждений. Добавьте дополнительную проверку для $ _POST, чтобы весь блок кода был пропущен во время обычной загрузки страницы.

if($_POST) { 
    if($_POST["postId"] != ''){ 
      $sql = "UPDATE tbl_post SET post_title ='".$_POST['postTitle']."', post_description = '".$_POST['postDescription']."' WHERE id ='".$_POST['postId']."'" ; 
      mysqli_query($conn,$sql); 
     }else{ 
      $sql = "INSERT INTO tbl_post (post_title,post_description,post_status) VALUES('".$_POST['postTitle']."','".$_POST['postDescription']."','draft')"; 
      mysqli_query($conn,$sql); 
      echo mysqli_insert_id($conn); 
     } 
} 
+0

Thanx Его работа ... –

+0

Пожалуйста, сделайте свой код более надежным, как предложено @ chris85. Ваш код открыт для SQL-инъекции. Вы никогда не должны доверять почтовым данным и отправлять их непосредственно в свою БД. Используйте подготовленные заявления. – sm1979

+0

его не показывает ошибку, но данные не могут быть вставлены в базу данных –

-1

В вас PHP скрипт вы должны использовать «post_id», «POST_TITLE и„post_description“. Тире используется в переднем конце (имя атрибута входных тегов), так что вы должны использовать то же самое в $ POST .

+0

Это неверно. Он проходит через AJAX. 'data: {postTitle: post_title, postDescription: post_description, postId: post_id}' – chris85

+0

echo mysqli_insert_id ($ conn); его showig 0 –

+0

Вы правы. Я не следил за всем кодом. –

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