2016-12-26 47 views
-1

說明:未定義指數:在帖子ID C:\ XAMPP \ htdocs中\ Ajax的完整\ save_post.php第4行 說明:未定義指數:postTitle在C:\ XAMPP \ htdocs中\ Ajax的完整\ save_post.php第8行 說明:未定義指數:postDescription在C:\ XAMPP \ htdocs中\ Ajax的完整\ save_post.php第8行表示未定義索引時將數據插入數據庫

<?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代碼中給出BELOW

<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

如果我使用Print_r($ _POST),我使用ajax及其showin顯示數據; 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’短跑是在前端(input標籤的name屬性)使用,所以你需要使用$ POST相同

+0

這是不正確的。它正在通過AJAX。 'data:{postTitle:post_title,postDescription:post_description,postId:post_id}' – chris85

+0

echo mysqli_insert_id($ conn);它的showig 0 –

+0

你是對的。我沒有遵循整個代碼。 –