2013-09-01 3 views
1

PHP, jquery/ajax, 심지어 javascript를 배우는 중이므로 이제는 멍청한 질문 일 수 있습니다. MYSQL 서버를 쿼리하기 위해 PHP에 변수를 전달하는 데 문제가 있습니다. 나는 newCharacter.php에 다음 HTML에 자바 스크립트 함수에 변수를 전달하고있다 :정의되지 않은 색인 PHP Ajax jquery 게시물

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

내가 다음 코드를 통해 PHP 페이지로 보내려고.

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 /> ;     

내가 잘못 뭐하는 거지 :

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

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

} 

그러나 나는 페이지 소스에서 다음과 같은 오류가? 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>'; 
    } 
} 
+0

새로운 캐릭터를 보여주세요 .php lines 28-38 – Itay

+0

이것은 그 것입니다. 간단히 경고를 제거하고 디버깅했습니다. – jigglylizard

답변

1

하지 대답을 http://php.net/manual/en/reserved.variables.post.php을 확인하실 수 있습니다,하지만 난 그냥

$return = $result->fetchAll(); 

    if ($return) 
    { 
     return true; 
    } 
    else{ 
     return false; 
    } 

종류의 무의미 지적 할, 당신은 기본적으로 말을하는지 : 경우에 true를 돌려줍니다 그건 사실이야. 거짓이면 false를 반환한다. 불량이기 때문에 곧바로 $ return을 반환 할 수있다. :)

그러나 나는 당신의 질문과 아무 관계가 없다.

하지만 자바 스크립트와 PHP를 함께 섞어서 사용하고 있습니까? 첫 번째 코드 예제에서 그렇게 나타납니다. 또한 ajax 호출에서 얻은 응답에 어떤 변화가 일어나는지 확인하는 데 도움이되는 .success, .complete, .failure 등을 활용해야합니다.

+0

JavaScript에서 PHP를 호출하여 서버에서 MYSQL 쿼리를 실행하고 결과를 반환하는 PHP 함수가 있습니다. 그런 다음 나머지 자바 스크립트는 결과를 가져 와서 페이지의 HTML에 적용합니다. 나는 성공을 추가하고 어떤 일이 벌어지는지를 보지 못했습니다. $ return을 반환하도록 수정하겠습니다. 멋지다. – jigglylizard

+0

그건 당신이하고 싶은게 아니에요, 당신은 결코 PHP와 자바 스크립트를 혼합하고 싶지 않아요. PHP 코드 만 포함하고 JavaScript가 말하는 것과 일치하는 동작을 수행하려면 pc.php를 원한다. ajax 호출에서 반환되면 PHP 코드가 실행되지 않아야합니다. – Jonast92

+0

그래서 각 쿼리에 PHP 페이지가 있습니까? – jigglylizard

2

오신 것을 환영합니다 :)

POST 바디 변수는 $ _POST 자동 전역에 포함되어 있습니다. $ _SESSION을 $ _POST로 전환하여 도움이되는지 확인하십시오.

당신은 더 정말 정보

+0

나는 이것을 알아 차리지 못해서 어리 석다. 나는 그러나 시도하고 여전히 동일한 오류가 발생합니다. – jigglylizard

+0

pc 클래스의 코드를 게시 할 수 있습니까? 나는 어떤 이름이 보이는지보고 싶다. – benashby

+0

편집 : jquery의 alert (name) 또는 console.log (name)을 사용하여 변수가 올바르게 전달되는지 확인하십시오. – benashby

관련 문제