2016-05-13 49 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谢谢你提醒我更新所有代码并添加解释 –