2016-05-13 3 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

где вы взяли значение lang и lat? , пожалуйста, добавьте в него свой ответ и почему у вас есть кнопка отправки 2? –

+0

Вторая кнопка - это только кнопка закрытия. lat и lang сохраняются в глобальной переменной при использовании кликов на карте google –

ответ

1

попробовать это пожалуйста, я изменю <form> тега добавить идентификатор и имя, и изменить кнопку отправить обычную кнопку

<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 (isset($_POST['title']) && isset($_POST['body']) && isset($_POST['longitude']) && isset($_POST['latitude'])){ 
+1

Не могли бы вы объяснить, что вы изменили? –

+0

@OscarJara спасибо за предупреждение Я обновляю все коды и добавляю объяснение –

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