2014-07-13 4 views
0

내 로컬 도메인에서 PHP 파일에 AJAX 호출을 만들고 있습니다. 요청에 성공 함수에 대한 데이터를 반환하지 않으므로 문제가 발생했습니다.빈 데이터 집합을 반환하는 AJAX 요청

은 내가 DB로가는 데이터를 게시하는 형태를 직렬화하고있다. 이 작업을 정상적으로 수행 할 수 있으며 데이터베이스에 쓰고 있습니다. 내가 성공 함수의 데이터 부분에 표시 할 에코 문을 얻을 때

문제

입니다.

경고를 사용했지만 아무 것도 경고하지 않습니다. 나는 CONSOLE.LOG을 시도하고 그것은 단지 보여줍니다

은 내가 PDO 기능에 mysql_로 함수로 전환하기 전에 작업을했다. 이제는 아무 것도 반환하지 않습니다. 나는 주변을 둘러 보았고 this link in particular 그리고 여전히 작동하지 않습니다.

이것은 내가 아약스 POST 요청에있는 것입니다 :

var formstuff = $('#person-data').serialize(); 
$.ajax(
{ 
    url: 'insert.php', 
    type: "POST", 
    dataType: 'text', 
    data: formstuff, 
    success: 
    function(data) 
    { 
     console.log(data); 
     alert(data); 
     $('#info').hide(); 
     $('#info').html(''); 
     $('#info').append(data); 
     $('#info').fadeIn(1500); 
     $("#person-data")[0].reset(); 
     $('#username').css({'border': '1px solid #000', 'background-color': '#FFF', 'color': '#000'}); 
     $('#username').css('background-image', 'url(images/txtbox/id.png)'); 
    } 
}); 

나는 콘솔에 게시 된 헤더를 확인하고이 양식 필드에 입력 무엇 게시됩니다. 이 단지 성공 함수에 반환되지 않는

echo 'ID: '.$idp.' Lastname: '.$ln.' First Name: '.$fn.' added to the database'; 

:

내가 성공 함수에 반환하려는 것을 가지고 에코입니다. 나는 try ... catch를 사용하지 않고 이것을 시도했다. 나는 그것을 시도하고 아무것도 안에 넣었다. catch 오류가 있어야하므로 함수에 다시 전송됩니다.

가 나는 시도하기 전에 뭔가를 에코하려고 노력하고 캐치 외부와 시도하기 전에 에코, 성공 기능에 내가 필요로 그냥 데이터를 출력한다. 그 작동하는지 문을 볼 경우

는 또한 시도 그것은 아무것도 표시되지 않습니다.

내가 난처한 상황에 빠진 내가 얻을 수있는 몇 가지 포인터가 있다면 그냥 궁금하고있다.

TIA

편집

PDO 정보 :

try 
{ 
    $sqlp = $conn->prepare("INSERT INTO ".PERSON." (lastname, firstname, dob, adbkid) VALUES(:ln, :fn, :dob, :unp)"); 
    $sqla = $conn->prepare("INSERT INTO ".ADDRESS." (address1, address2, town, county, postcode, country, lat, lng, personID) VALUES (:a1, :a2, :town, :county, :pc, :country, :lat, :lng, :una)"); 
    $sqlc = $conn->prepare("INSERT INTO ".CONTACT." (landline, mobile, email1, email2, personID) VALUES (:lp, :mp, :e1, :e2, :unc)"); 
    $sqlm = $conn->prepare("INSERT INTO ".MISC." (web, notes, photo, fbid, twitter, cat, personID) VALUES (:web, :notes, :pic, :fb, :tw, :cat, :unm)"); 
    $sqlv = $conn->prepare("INSERT INTO ".VARI." (Time, Date, ipaddress, browser, os, personID) VALUES (:it, :idate, :iip, :ib, :ios, :unv)"); 

    $sqlp->bindValue(':ln', $ln); 
    $sqlp->bindValue(':fn', $fn); 
    $sqlp->bindValue(':dob', $dob); 
    $sqlp->bindValue(':unp', $un); 

    $sqla->bindValue(':a1', $a1); 
    $sqla->bindValue(':a2', $a2); 
    $sqla->bindValue(':town', $town); 
    $sqla->bindValue(':county', $county); 
    $sqla->bindValue(':pc', $pc); 
    $sqla->bindValue(':country', $country); 
    $sqla->bindValue(':lat', $lat); 
    $sqla->bindValue(':lng', $lng); 
    $sqla->bindValue(':una', $un); 

    $sqlc->bindValue(':lp', $lp); 
    $sqlc->bindValue(':mp', $mp); 
    $sqlc->bindValue(':e1', $e1); 
    $sqlc->bindValue(':e2', $e2); 
    $sqlc->bindValue(':unc', $un); 

    $sqlm->bindValue(':web', $web); 
    $sqlm->bindValue(':notes', $notes); 
    $sqlm->bindValue(':pic', $pic); 
    $sqlm->bindValue(':fb', $fb); 
    $sqlm->bindValue(':tw', $tw); 
    $sqlm->bindValue(':cat', $cat); 
    $sqlm->bindValue(':unm', $un); 

    $sqlv->bindValue(':it', $it); 
    $sqlv->bindValue(':idate', $idate); 
    $sqlv->bindValue(':iip', $iip); 
    $sqlv->bindValue(':ib', $ib); 
    $sqlv->bindValue(':ios', $ios); 
    $sqlv->bindValue(':unv', $un); 

    $sqlp->execute(); 
    $sqla->execute(); 
    $sqlc->execute(); 
    $sqlm->execute(); 
    $sqlv->execute(); 

    $idp = $sqlp->lastInsertId(); 
    $ida = $sqla->lastInsertId(); 
    $idc = $sqlc->lastInsertId(); 
    $idm = $sqlm->lastInsertId(); 
    $idv = $sqlv->lastInsertId(); 

    echo $idp.' '.$ln.' '.$fn.' added'; 
} 
catch (PDOException $e) 
{ 
    print '<div class="sqlerror">'.$e->getMessage().'</div>'; 
} 

이 반환 무엇이며 응답이

Response from mysql

입니다 MySQL을 사용하여 파일에 표시됩니다 PDO를 사용할 때 반환되는 내용 - 데이터가없고 n O 응답이 Response from PDO

+0

하는 경우를 mysql_ *에서 PDO로 마이그레이션하는 중에 문제가 발생했습니다. PDO 코드를 공유 할 수 있습니까? –

+1

브라우저의 dev 도구의 네트워크 탭에서 다시 돌아 오는 것이 있는지 확인해 보았습니까? 서버 쪽을 바꿔서 지금 작동하지 않는다면 거기에서 시작할 것입니다. – MrOBrian

+0

나는 무엇이 돌아 왔는지를보기 위해 콘솔을보고 있었고 200 개의 성공을 가진 PHP 파일의 이름이 전부였다. 이것이 내가 console.log()를 작성한 이유이며 빈 데이터 문자열 메시지를 보여 주었다. 변경된 유일한 것은 mysql에서 PDO로 전환하는 것입니다. 난 그냥 PDO를 시도한 다음 mysql을 시도하고 나는 하나의 응답에서 PDO가 아닌 하나의 응답을 얻는다. 원래 질문에 스크린 샷을 추가하겠습니다. – Chris

답변

1

기능 lastInsertId()PDO 개체, 당신이 여기 시도해보세요 PDOStatement 객체에 전화로 신청하는 방법입니다,이 시도 :

$sqlp->execute(); 
$idp = $conn->lastInsertId(); 
$sqla->execute(); 
$ida = $conn->lastInsertId(); 
$sqlc->execute(); 
$idc = $conn->lastInsertId(); 
$sqlm->execute(); 
$idm = $conn->lastInsertId(); 
$sqlv->execute(); 
$idv = $conn->lastInsertId(); 

대신

$sqlp->execute(); 
$sqla->execute(); 
$sqlc->execute(); 
$sqlm->execute(); 
$sqlv->execute(); 

$idp = $sqlp->lastInsertId(); 
$ida = $sqla->lastInsertId(); 
$idc = $sqlc->lastInsertId(); 
$idm = $sqlm->lastInsertId(); 
$idv = $sqlv->lastInsertId(); 
+0

감사합니다. 감사합니다. 그랬어. 데이터가 반환되지 않도록하는 lastInsertId() 함수입니다. 여기에 게시하기 며칠 전에. :디 – Chris

관련 문제