2015-10-02 2 views
1

Я пытаюсь, чтобы отправить конкретный раздел моей строки URL-адреса в мой php-файл, чтобы затем заполнить мою страницу соответствующим образом. Все работает нормально, за исключением метода AJAX POST. Я пробовал делать var_dump переменной POST в моем PHP, и мой массив пуст (так что я знаю, что ничего не происходит).Не получать значения, отправленные с помощью AJAX POST на PHP

Успех возвращается как переданный, поэтому я не знаю, куда идут данные. Я тестирую локально на XAMPP, и я прочесал SoF и не повезло ни на одном из исправлений. Мой код ниже.

Снимок экрана страницы:

enter image description here

JQuery AJAX запрос:

$(document).ready(function() { 
    str = window.location.href; 
    pos = str.search("pages/"); //42 
    send = str.slice(42, -5); 
    console.log(send); 
    console.log(pos); 
    $.ajax({ 
     type: "POST", 
     url: "retrieve.php", 
     data: { 
      tom: send 
     }, 
     success: function() { 
      $.get("retrieve.php", function(data, status) { 
        $("#main").html(data); 
       }) //ends GET function 
     }, 
     error: function() { 
      console.log(arguments) 
     } 
    }); //ends POST request    
}); //ends DOC-READY function 

PHP:

echo "<i>hello</i>"; 
echo var_dump($_POST); 
$url = $_POST['tom']; 
json_decode($url); 
echo $url; 
+1

Вы пытались упростить код, так что вы можете получить базовые шаги вниз. Возможно, попробуйте просто опубликовать что-то основное на странице и посмотреть, получите ли вы ожидаемые результаты. – ckimbrell

+0

Эй, да, я получаю веб-страницу вверх, мне просто нужно извлечь мои данные из БД, чтобы заполнить определенные поля на странице, основанные на URL-адресе. И чтобы убедиться, что мой запрос GET работает, мне пришлось вернуть данные из php-файла на страницу, и это работает нормально. Его просто POST не работает –

+0

Возможно, попробуйте посмотреть консоль для запроса 'POST' и убедитесь, что данные отправляются. Если значение 'tom' равно' null ', это может вызвать проблему. – camelCase

ответ

2

Попробуйте ниже,

Также вам не нужно json_decode, если вы не отправите запрос json, и убедитесь, что все значения проходят.

Ajax:

$(document).ready(function() { 
    var str = window.location.href; 
    var pos = str.search("pages/"); //42 
    var send = str.slice(42, -5); 
    console.log(send); 
    console.log(pos); 
    $.ajax({ 
     type: "POST", 
     url: "retrieve.php", 
     data: { 
      'tom': send//make sure this is not empty 
     }, 
     success: function(data) { 
      console.log(data); 
     }, 
     error: function(arguments) { 
      console.log(arguments) 
     } 
    }); //ends POST request    
}); //ends DOC-READY function 

PHP:

if($_SERVER['REQUEST_METHOD'] == 'POST'){ 
    //echo "<i>hello</i>"; 
    //echo var_dump($_POST); 
    $url = $_POST['tom']; 
    json_encode($url); 
    echo $url; 
} 
+0

Я попробую это, когда вернусь к своему столу в нескольких. Благодарю за ваш ответ. –

+0

Быстрый вопрос: когда вы говорите «отметьте, проверяются ли значения сообщений», вы просите меня убедиться, что переменная «send» имеет в ней действительные данные или на стороне сервера, если я получаю значения –

+0

@ JustinE.Samuels, я спрашиваю, имеет ли переменная send правильные данные. – jlocker

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