2013-02-10 6 views
0

Эй, ребята у меня есть следующие $ .ajax вызов:

$.ajax({ 
     type: "POST", 
     dataType: "json", 
     url: '/pcg/popups/getNotes.php', 
     data: 
     { 
      'nameNotes': notes_name.text(), 

     }, 
     success: function(response) { 
      $('#notes_body').text(response.the_notes); 
      alert(response.the_notes); 

     } 
)}; 

Теперь сосредоточиться на data: позволяет сказать, что я послал «Косби». Это будет отправлена ​​к файлу указанного и у меня есть это в этом файле:

$username_notes = $_POST['nameNotes']; 

Теперь позволяет сказать, что я был просто $ username_notes вернуться в JSON, как это ...

$returnArray = array('the_notes' => $username_notes); 

echo json_encode($returnArray); 

Это будет работать, и ответ будет BillCosby. Теперь, когда я попытаюсь получить значение для BillCosby из моей базы данных MySQL, используя PDO, он вернет null .... Прежде чем я покажу код для всего файла, я просто хочу пояснить, что PDO работает отлично, если бы я должен был указать переменную $ username_notes прямое значение «BillCosby», я бы прошел через базу данных идеально, она возвращает только null, если у меня есть $ _POST ['nameNotes']; спереди.

getNotes.php:

$username_notes = $_POST['nameNotes']; 

grabNotes($username_notes); 



function grabNotes($xusername) 
{ 
    ..... 

    $newUser = $xusername; 

    try { 
     # MySQL with PDO_MYSQL 
     $DBH = new PDO("mysql:host=$hostname;dbname=$database", $username, $password); 
     $DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    } 
    catch(PDOException $e) { 
     echo "I'm sorry, I'm afraid I can't do that."; 
     file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND); 
    } 

    $sql = "SELECT notes FROM csvdata WHERE username = :username"; 
    $getmeminfo = $DBH->prepare($sql); 
    $getmeminfo->execute(array(':username' => $newUser)); 
    $row = $getmeminfo->fetch(PDO::FETCH_ASSOC); 
    $notes = $row['notes']; 

    $returnArray = array('the_notes' => $row['notes'],); 

    echo json_encode($returnArray); 

    $DBH = null; 

} 

Так что мой вопрос, почему я не могу получить возвращаемое значение обратно из заявления PDO? Он будет работать идеально, если я сказал PDO заявление имя - «BillCosby» внутри файла, к которому обращается файл $ .ajax. Но это не сработает и возвращает null, если я получаю значение через $ _POST из $ .ajax. Самое смешное, что я могу вернуть то же самое значение, которое было отправлено.

Спасибо за ваше время, ребята!

+0

Странно, что вы используете '$ username'. Он даже выглядит как затенение другой переменной – Alexander

+0

Проверить обновление Я изменил это ... – 2013-02-10 18:57:54

+0

Попробуйте обрезать его -> '$ username_notes = trim ($ _POST ['nameNotes']);' – adeneo

ответ

0

Try подрезки:

$username_notes = trim($_POST['nameNotes']); 

Иногда пробелы в строке вызовет ошибку такого рода, и они могут быть трудно обнаружить.

+0

Еще 1 мин и его твой! – 2013-02-10 19:04:07

+1

@DavidBiga - уверен, просто рад помочь? – adeneo

+0

у вас есть секунда? – 2013-02-10 19:58:42

0

Мне часто приходится добавлять обратный вызов = ?. Таким образом, ваш запрос JQuery Ajax будет выглядеть следующим образом:

$.ajax({ 
    type: "POST", 
    dataType: "json", 
    url: '/pcg/popups/getNotes.php?callback=?', 
    data: 
    { 
     'nameNotes': notes_name.text(), 

    }, 
    success: function(response) { 
     $('#notes_body').text(response.the_notes); 
     alert(response.the_notes); 

    } 
)}; 

Кроме того, предпочтительно нужно использовать метод jQuery.getJSON.

+0

спасибо! :) Я попробую это – 2013-02-10 20:59:20

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