2014-11-27 1 views
0

분명히 내 POST 요청이 취소되고 있습니까? http://puu.sh/d73LC/c6062c8c07.pngAJAX로 PHP 파일을 호출 할 때 EOF/오류를로드하지 못했습니다

내가 선택 쿼리와 데이터베이스를 쿼리 할 때 또한, mysqli_result 객체가 모두 null 값을 가지고

여기
<?php 

$servername = "localhost"; 
$username = "root"; 
$password = "root"; 
$dbname = "uoitlol"; 
$name = "test1"; //this should be $_POST['name']; test1 is just to test if it works. 
$err = false; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
if ($conn->connect_errno > 0) { 
    echo 'connerr'; 
    die(); 
} 
$sql = "INSERT INTO summoners (name) VALUES (?)"; 

$getname = "SELECT name FROM summoners"; 

$result = $conn->query($getname); 
while ($row = $result->fetch_assoc()) { 
    echo 'name : ' . $row['name']; 
    if ($row['name'] === $name) { 
     echo 'error, name exists'; 
     $err = true; 
    } 
} 

$stmt = $conn->prepare($sql); 
$stmt->bind_param('s', $name); 

if ($err === false) { 
    if (!$stmt->execute()) { 
     echo 'sqlerr'; 
    } else { 
     echo 'success'; 
    } 
} 

$stmt->close(); 
mysqli_close($conn); 

내 자바 스크립트 파일 : 여기

object(mysqli_result)[2] 
    public 'current_field' => null 
    public 'field_count' => null 
    public 'lengths' => null 
    public 'num_rows' => null 
    public 'type' => null 

내 PHP 파일입니다 , 내 웹 양식 (다른 HTML 파일)을 클릭 할 때마다 아약스로 php 파일을 호출합니다.

$(document).ready(function() { 
    $("#modalClose").click(function() { 
     document.getElementById("signupInfo").className = ""; 
     document.getElementById("signupInfo").innerHTML = ""; 
    }); 
    $("#formSubmit").click(function() { 
     var name = $("#name").val(); 
// Returns successful data submission message when the entered information is stored in database. 
     var dataString = {'name' :name}; 
     if (name === '') 
     { 
      document.getElementById("signupInfo").className = "alert alert-danger"; 
      document.getElementById("signupInfo").innerHTML = "<b>Please enter a summoner name!</b>"; 
     } 
     else 
     { 
// AJAX Code To Submit Form. 
      $.ajax({ 
       type: "POST", 
       url: "submitName.php", 
       data: dataString, 
       cache: false, 
       success: function (msg) { 
        if (msg === 'error'){ 
         document.getElementById("signupInfo").className = "alert alert-danger"; 
         document.getElementById("signupInfo").innerHTML = "<b>That summoner name is already in the database!</b>"; 
        } else if (msg === 'sqlerror'){ 
         document.getElementById("signupInfo").className = "alert alert-danger"; 
         document.getElementById("signupInfo").innerHTML = "<b>SQL error, contact the administrator.</b>"; 
        } else if (msg === 'success'){ 
         document.getElementById("signupInfo").className = "alert alert-success"; 
         document.getElementById("signupInfo").innerHTML = "<b>Summoner successfully added!</b>"; 
        } 
       } 
      }); 
     } 
     return false; 
    }); 
}); 

내 양식을 제출하는 버튼을 클릭 할 때마다 이러한 오류가 발생합니다.

리소스를로드하지 못했습니다. 서버에서 파일 끝이 예기치 않게 (19 : 41 : 35 : 538 | 오류, 네트워크)으로 public_html에 /submitName.php

자원로드 실패 : 서버로부터 예기치 않은 파일의 끝 (19 : 41 : 35 : 723 | 에러, 네트워크) 으로 public_html/submitName.php

에서 리소스를로드하지 못했습니다 : 예기치 않은 파일 끝 (예 : 19 : 41 : 36 : 062 | 오류, 네트워크) public_html/submitName.php에서

Netbeans IDE를 사용하고 있습니다.

puu.sh/d6YXP/05b5f3dc06.png - 출력 로그 오류가있는 IDE의 스크린 샷.

+1

붙여 넣기 링크가 아닌 코드를 여기에 게시하십시오. – Barmar

+0

여기에 내 코드를 게시 할 수 없으며 모든 코드가 깨졌습니다. – user4298098

+0

편집기에서 코드 마크 업 도구를 사용하십시오 :'{}' – Barmar

답변

0

를 드롭 PHP 파일의 끝에 ?> 대신이 대신 var dataString = 'name=' + name; 사용을 사용 :

var data = { "name" : name}; 

특수 텍스트 - 할 필요가 없도록 jQuery를이 자동적으로 당신을위한 더러운 물건을 할 것입니다 그것과 물건을 벗어 나라.

로그 파일을 사용하지 않고도 코드를 간단하게 처리 할 수 ​​있다면 문제가되지 않습니다.

+0

답장을 보내 주셔서 감사합니다! 제안대로 변경했습니다. 오류가 계속 발생합니다. 자원을로드하지 못했습니다 : 이 내가 출력 로그에서받은 오류는 소프트웨어가 연결 중단 원인 : RECV는 (: 55 : 45 : 20 (109) | 오류, 네트워크) 실패/submitName.php 가 실패으로 public_html에 로드 리소스 : 서버 (예 : 20 : 55 : 52 : 199 | 오류, 네트워크)에서 예기치 않은 파일 끝입니다. public_html/submitName.php에서 – user4298098

+0

좋습니다. 계속해서 코드를 업데이트 할 수 있습니까? 감사! –

+0

이 페이지를 오류없이 독자적으로로드 할 수 있습니까? –

1

실제로 HTML이 없으면 submitName.php에서 제거하십시오.

<!DOCTYPE html> 

HTML이있는 경우 대신 사용하십시오. submitName.php 더 HTML이 포함되지 않는 경우

<?php 
//your PHP code// 
?> 
<!DOCTYPE html> 
//your HTML here// 
</html> 

또한, 하단에 ?> 이후에는 빈 줄이없는 있는지 확인하십시오.

편집 : 쿼리에 관해서는이 코드를 사용해보십시오.

if (!empty($name) { //verify the form value was received before running query// 
    $getname = "SELECT name FROM summoners WHERE name = $name"; 

    $result = $conn->query($getname); 
    $count = $getname->num_rows; //verify a record was selected// 
    if ($count != 0) { 
     while ($row = $result->fetch_assoc()) { 
      echo 'name : ' . $row['name']; 
      if ($row['name'] === $name) { 
       echo 'error, name exists'; 
       $err = true; 
      } 
     } 
    } else { 
     echo "no record found for name"; 
     exit; 
    } 
} 
+0

감사합니다. 그러나 문제가 해결되지 않았습니다. – user4298098

+0

필자가 제공 한 파일을 검토 한 결과 아무 문제가 없다고 생각합니다. 어느 것이 든'}',';'가 없거나 PHP 태그 앞뒤에 공백이 있습니다. netbeans를 다시로드 해 볼 수도 있습니다. – EternalHour

+0

나는 이것을 내 WAMP 서버 로그 파일에서 얻었습니다. 27-Nov-2014 04:12:21 유럽/파리] PHP 치명적 오류 : C : \ Program Files의 비 객체에서 fetch_assoc() 멤버 함수를 호출하십시오. PHP는 스택 추적 : [27-Nov-2014 04:12:21] [PHP] 스택 추적 : [27-Nov-2014 04:12:21 유럽/파리] \ Wamp \ www \ WSFinal \ public_html \ submitName.php PHP는 다음과 같습니다 : PHP 1. {main}() C : \ Program Files (x86) \ wamp \ www \ WSFinal \ public_html \ submitName.php : 0 – user4298098

관련 문제