2015-11-09 3 views
-2

Я использую HTML, PHP и AJAX для создания поля поиска. Вот мой HTML код:PHP POST массив данных пуст

<form action="search.php" id="search_form" method="post" > 
    <div class="search_bar"> 
    <input type="text" name="search_text" id="search_text" placeholder="Search anything" > 
    </div> 
    <div class="search_button"> 
    <button type="submit" id="search_button" name="search_submit" >Search</button> 
    </div> 
    </form> 

Это мой AJAX код:

$('#search_button').click(function(event) { 

    var search_data = $('#search_text').val(); 

    var postData ={ 
      "content":search_data}; 

    event.preventDefault(); 

    $.ajax({ 
     type: 'POST', 
     url: 'search.php', 
     data:{myData: postData}, 
     error: function() 
     { 
      alert("Request Failed"); 
     }, 
     success: function(response) 
     {   
      alert("Success"); 
     } 
    }); 

}); 

В PHP я попробовал следующее:

$obj = $_POST['myData']; 
echo $obj; 
print_r($_POST); 

Все, что я получаю:

Примечание: Неопределенный индекс: myData в C: \ xampp \ ht Docs \ рабочее пространство \ MakeMyApp \ WebContent \ search.php на линии 9

Array () 

Я также попытался с:

file_get_contents('php //input') 

но также я получаю пустой массив. Я не знаю, в чем проблема. Я что-то пропустил?

+1

Вы просматривали запрос/ответ в консоли браузера? –

+1

Если вы удалите AJAX из уравнения, выполните работу PHP? – j08691

+1

Никогда не предполагайте, что установлен '$ _POST' super. Убедитесь, что он существует до доступа к нему. –

ответ

1

Извините, я не могу комментировать, поскольку мне не хватает «репутации».

Я попытался воспроизвести вашу проблему и, похоже, работает нормально для меня.

Вот страница HTML ...

<html> 
<head> 

<script src="//code.jquery.com/jquery-1.11.3.min.js"></script> 
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script> 

<script type="text/javascript"> 
$(document).ready(function(){ 

    $('#search_button').click(function(event) { 

    var search_data = $('#search_text').val(); 

    var postData ={ 
      "content":search_data}; 

    event.preventDefault(); 

    $.ajax({ 
     type: 'POST', 
     url: 'search-submit.php', 
     data:{myData: postData}, 
     error: function() 
     { 
      alert("Request Failed"); 
     }, 
     success: function(response) 
     {   
      alert(response); 
     } 
    }); 

}); 

}); 
</script> 

</head> 
<body> 
<form action="search.php" id="search_form" method="post" > 
    <div class="search_bar"> 
    <input type="text" name="search_text" id="search_text" placeholder="Search anything" > 
    </div> 
    <div class="search_button"> 
    <button type="submit" id="search_button" name="search_submit" >Search</button> 
    </div> 
    </form> 
</body> 
</html> 

И это получающее PHP страница

<?php 
echo '<pre>'; 
print_r($_POST); 
echo '</pre>'; 
?> 

В АЯКС запросе, вы можете видеть, я использую уведомление для вывода ответа в предупреждении, но, если все идет хорошо, он должен выводить содержимое, выводимое с помощью PHP-страницы.

Кроме того, это может не сильно помочь, но его так я сделал бы запрос ajax; это немного меньше кода, и вам не нужно определять каждое поле формы отдельно (если у вас более одного поля)

$(document).ready(function(){ 

    $('#search_form').submit(function() { 
     var formData = $(this).serialize(); 

    $.ajax({ 
     type: 'POST', 
     url: 'search-submit.php', 
     data: formData, 
     error: function() 
     { 
      alert("Request Failed"); 
     }, 
     success: function(response) 
     {   
      alert(response); 
     } 

    }); 

    return false; 

}); 

}); 
+0

, так что может быть возможной ошибкой в ​​моем коде ??? или это другая ошибка ?? как конфигурация файла? –

+0

Можете ли вы рассказать мне, как вы знаете, что запрос не отправляется правильно? вы пытались предупредить ответ, как я сделал выше? Я подозреваю, что ваша форма работает правильно, но вы не видите результат. – SheppardDigital

+0

Я добавил предупреждение для ответа. Удивительно, но я получаю правильный ответ в предупреждении, но не из файла PHP –

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