1

PHP、jquery/ajax、さらにはjavascriptを学んでいるので、これは初歩的な質問かもしれません。変数を PHP に渡して MYSQL サーバーにクエリを実行するのに問題があります。newCharacter.php の次の HTML で、javascript 関数に変数を渡しています。

    Choose your name:<input type='text' id='name' 
            onchange="verifyName(this.value)">

次に、次のコードを使用して PHP ページに送信しようとします。

function verifyName(name) {
    $.ajax({
        url: "Classes/pc.php",
        type: "POST",
        data: {
            'name': name
        }
    });

    <? php
    echo pc::nameTaken($_SESSION['name']).';'; ?>

}

ただし、ページのソースに次のエラーが表示されます。

var result = 0;
             <br />
<b>Notice</b>:  Undefined index: name in
<b>D:\Server\htdocs\dungeonexplorers\newCharacter.php</b> 
on line <b>33</b><br />    ;                

私は何を間違っていますか?私が理解しているように、POST セッション変数が正しく渡されていません。

編集:PCクラスの追加(関連部分)

public static function nameTaken($name)
{
    try{
        $db = DBConnect::connect();
        $result = $db->prepare('SELECT name                
           FROM pc WHERE name=:name LIMIT 1');
        $result->bindParam(':name',$name);
        $result->setFetchMode(PDO::FETCH_ASSOC);
        $result->execute();
        $return = $result->fetchAll();

        if ($return)
        {
            return true;
        }
        else{
            return false;
        }
    }
    catch (PDOException $e)
    {
        Echo 'PDO error: ' . $e->getMessage() . '<br>';
    }
    catch (Exception $e)
    {
        Echo 'General Error retrieving username and password.<br>';
    }
}
4

2 に答える 2

2

ウェブ開発へようこそ:)

POST Body 変数は、$_POST スーパーグローバルに含まれています。$_SESSION を $_POST に切り替えてみて、それが役立つかどうかを確認してください。

詳細については、 http://php.net/manual/en/reserved.variables.post.phpをご覧ください。

于 2013-09-01T04:41:15.337 に答える