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: 「BillCosby」を送信したとしましょう。それは指定されたファイルに送信され、私はそのファイル内にこれを持っています:

$username_notes = $_POST['nameNotes']; 

さて、このように$username_notesをjsonに返すだけだったとしましょう...

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

echo json_encode($returnArray);

これは機能し、応答はBillCosbyになります。これで、PDOを使用してMySQLデータベースからBillCosbyの値を取得しようとすると、nullが返されます。ファイル全体のコードを表示する前に、PDOが機能することを確認したいと思います。完璧です。変数$username_notesに'BillCosby'の直接値を指定すると、データベースを完全に実行し、$ _POST['nameNotes']がある場合にのみnullを返します。前に。

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ステートメントから戻り値を取り戻せないのですか?$.ajaxファイルが呼び出すファイル内でPDOステートメントに名前-'BillCosby'を指定すると、完全に機能します。しかし、$。ajaxから$ _POSTを介して値を取得すると、機能せず、nullを返します。面白いのは、送信されたのと同じ値を返すことができることです。

お時間をいただきありがとうございます!

4

2 に答える 2

0

トリミングしてみてください:

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

文字列内のスペースがこの種のエラーを引き起こすことがあり、それらを見つけるのが難しい場合があります。

于 2013-02-10T19:00:47.703 に答える
0

私はしばしば?callback =?を追加する必要があります。したがって、JQueryajaxリクエストは次のようになります。

$.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メソッドを使用することをお勧めします。

于 2013-02-10T20:00:17.743 に答える