2016-05-13 31 views
1

我已經創建了下面的表單,當按下提交按鈕時,假設發出一個請求並在php中添加這個到mysql。但是,當執行發佈請求時,我不斷收到Post 500 (Internal Server Error)發佈多種數據類型的請求

形式

<form method="post" action=""> 

    <div class="reg_section personal_info"> 
    <input type="text" id="title" value="" placeholder="Campnavn" required="required" maxlength="25"> 


    <textarea name="textarea" id="description" value="" placeholder="Beskrivelse" required="required" minlength="100"></textarea> 
    <div class="upload"> 
     <input type="file" name="upload" accept="image/*" id="image" /> 
     <span class="fileName">Select file..</span> 
    </div> 

    </div> 

    <div> 
    <span class="submit" style="text-align: left; padding: 0 10px;"><input type="submit" id="insert" value="Tilføj"></span> 
    <span class="submit" style="text-align: right; padding: 0 10px;"><input TYPE="button" value="Fortryd" onclick="div_hide();"></span> 
    </div> 

</form> 

的JavaScript

$(document).ready(function() { 
    $("#insert").click(function(e) { 

     var description = $('#description').val(); 
     var title = $('#title').val(); 

     var image = $("#image").serialize() 


     $.post("insert.php", 
     { 
      title: title, 
      body: description, 
      longitude: currentMarker.lng(), 
      latitude: currentMarker.lat(), 
      image: image 
     }, function (data) { 

     }).error(function() { 

     }); 
    }); 
}); 

insert.php

<?php 


     include('config.php'); 



     if (isset($_POST['title']) && isset($_POST['body']) && isset($_POST['longitude']) && isset($_POST['latitude']))) { 
     $target_dir = "image/"; 


     $title = $_POST['title']; 
     $body = $_POST['body']; 
     $longitude = (float)$_POST['longitude']; 
     $latitude = (float)$_POST['latitude']; 
     $image = $_FILES['image']; 

     $strSQL = $db->query("INSERT INTO camps (title, body, longitude, latitude, image) VALUES ('$title', '$body', '$longitude','$latitude', '$image')"); 



     } 



?> 
+0

我建議你檢查瀏覽器的網絡活動,看到正在取得確切的請求,並確保最終增加更多的一個「)」請求路徑是正確的,並且您期望的值正在被傳遞。此外,請參閱在數據庫調用之前是否可以從服務器端輸出值,我猜測這是發生錯誤的位置。 –

+0

你在哪裏取得郎和拉特的價值? 請添加您的答案 ,爲什麼你有2個提交按鈕? –

+0

第二個按鈕只是一個關閉按鈕。經緯度和朗語被保存到全球變量當使用點擊谷歌地圖 –

回答

1

試試這個,請,我改變<form>標籤我添加的ID和名稱, 並更改提交按鈕和普通的按鈕

<button type="button" onclick="postdata();" id="insert" >Tilføj</button> 

後我定義的onclick功能按鈕...

形式

 <form id="FormData" name="FormData"> 

      <div class="reg_section personal_info"> 
      <input type="text" id="title" value="" placeholder="Campnavn" required="required" maxlength="25"> 


      <textarea name="textarea" id="description" value="" placeholder="Beskrivelse" required="required" minlength="100"></textarea> 
      <div class="upload"> 
       <input type="file" name="upload" accept="image/*" id="image" /> 
       <span class="fileName">Select file..</span> 
      </div> 

      </div> 

      <div> 
      <span class="submit" style="text-align: left; padding: 0 10px;"> 
<button type="button" onclick="postdata();" id="insert" >Tilføj</button> 
    </span> 
      <span class="submit" style="text-align: right; padding: 0 10px;"> 
<input TYPE="button" value="Fortryd" onclick="div_hide();"></span><br><br> 
    <span id="result" style="color:#9B0E11; font-size:13px; font-weight:700"></span> 
      </div> 

     </form> 

的JavaScript

<script type="text/javascript"> 
    function postdata() { 
    var description = $('#description').val(); 
    var title = $('#title').val(); 
    var image = $("#image").serialize(); 

     $.ajax({ 
      type: 'POST', 
      url: 'insert.php', 
      data: { 
       desc: desctiption, 
       title: title, 
       image:image, 
       longitude: currentMarker.lng(), 
       longitude: currentMarker.lat(), 
        }, 
      success: function (answer) { 
       $("#result").html(answer) // if you wanna get response from insert.php 
       $("#FormData")[0].reset(); // if you wanna reset form after submit 
      } 
     }) 
    } 
</script> 

PS:在insert.php你的if語句必須刪除它

if (isset($_POST['title']) && isset($_POST['body']) && isset($_POST['longitude']) && isset($_POST['latitude'])){ 
+1

你能解釋一下你有什麼改變? –

+0

@OscarJara謝謝你提醒我更新所有代碼並添加解釋 –