2013-07-01 4 views
0

이 특정 주제에 대한 게시물이 많지만 특별한 문제는 해결되지 않은 것으로 알고 있습니다.JQuery가 POST 요청의 결과를 수신하지 않음

입력란의 텍스트와 동일한 값을 데이터베이스에 쿼리하기 위해 jQuery의 post 메서드를 사용하고 있습니다. 반환 된 결과는 아래의 텍스트 입력 상자에 표시됩니다. 그러나 어떤 이유로 인해 게시 요청의 성공 조건이 실행되지 않습니다. 논리적으로 이것은 내 게시물 요청이나 PHP 파일에 게시 할 때 오류가 있음을 나타내므로 여기서 두 코드를 붙여 넣습니다.

JQuery와

$(document).ready(function() { 
$('#title').change(function() { 
    var data = 'title='+$(this).val(); 
    $.post('getinfo.php', data, function(response){ 
     if(response.toString() == 'invalid') 
     { 
      alert('no such book title'); 
     } 
     else 
     { 
      alert('book found'); 
     } 
    }); 

    return false;  // required to not open the page when form is submited 
    }); 
    }); 

info.php 얻을 파일

<?php 

defined('C5_EXECUTE') or die(_("Access Denied.")); 

$title = $_post['title']; 

     $db = loader::db(); 
     $res = $db -> Execute('select isbn from btBookList where title = ?', array($title)); 

     if($res !=null) 
     { 
      $identifier = ''; 
      foreach($res as $row) 
      { 
      $identifier = $row['isbn']; 
      } 
      echo json_encode($identifier); 
     } 
     else 

      echo 'invalid'; 
?> 

이 때문에 콘크리트 5 PARAM의 defined('C5_EXECUTE') or die(_("Access Denied."));

$db = loader::db(); 
      $res = $db -> Execute('select isbn from btBookList where title = ?', array($title)); 
+0

당신은 title post 변수를 통해 SQL 삽입을 허용하고 있습니다. 귀하의 문제는 게시물의 데이터 부분에 있다고 생각됩니다. – abc123

+0

jQuery 파일에 로컬로 또는 웹 서버를 통해 액세스하고 있습니까? (로컬로 호스팅 된 경우에도 마찬가지입니다.) 기본적으로 주소 표시 줄의 URL은 'http'또는 'file'로 시작합니까? 후자의 경우 교차 도메인 정책 파일 오류 (http://en.wikipedia.org/wiki/Same_origin_policy)가 발생할 수 있습니다. – Alfie

+0

일치하는 행이 없으면 어떻게됩니까? $ res는 실제로 null이되거나 빈 배열입니까? Chrome, Safari 또는 Firefox 개발자 도구를 사용하여 getinfo.php 페이지에 대한 네트워크 요청/응답을 검토해 보셨습니까? – SnowInferno

답변

0

패스 데이터 사용 :

var data = {'title' : $(this).val()}; 
$.post('getinfo.php', data,function(response){ 
alert("Success: " + response); 
}).fail(function() { 
alert("Failed..."); 
}); 
+0

$ _POST 배열에서 문자열 값을 캡처 할 수 있습니까? – vee

+0

나는 잘 모르겠다. 테스트를 –

+0

참고하시기 바랍니다 : 방금 주위에있어, $ _POST 배열 쿼리 문자열 매개 변수를 고려하지 않습니다 :). – vee

0

'게시 된'데이터를 검색하는 방법이라고 생각합니다. getinfo.php에서 $title = $_POST['title']; (즉, 모두 $_POST 대문자)을 사용해보세요.

0

아약스 전화가 올 바릅니다. getinfo.php에서 오류가 발생하여 게시 요청의 성공 조건이 실행되지 않습니다. $_post['title']이므로 $_POST['title']이어야합니다. 콘솔의 응답 텍스트를 확인하십시오.