2015-02-04 2 views
1

나는 다음과 같은 형식을 사용하여 데이터베이스에 레코드를 추가XMLHttpRequest를

  <form id="form" name="form"> 
      <img id="close" src="images/3.png" onclick ="div_hide()"> 
      <h2>Grade</h2> 
      <hr> 
      <input id="fn" name="fn" placeholder="Faculty number" type="number"> 
      <select id="grade_type" name="grade_type"> 
       <option value="test" selected="selected">Тест</option> 
       <option value="attendance">Attendance</option> 
       <option value="homework">Homework</option> 
      </select> 
      <input id="grade" name="grade" placeholder="Points" type="number"> 
      <a href="javascript:%20check_empty()" id="submit">Add record</a> 
      </form> 

내가 포인트를 추가 할 제출 버튼을 데이터베이스에 grade_type을 클릭합니다. getuser.php 파일의

// Validating Empty Field 
function check_empty() { 
if (document.getElementById('grade').value == "") { 
alert("Fill the fields!"); 
} else { 
    if (window.XMLHttpRequest) { 
     // code for IE7+, Firefox, Chrome, Opera, Safari 
     alert("xmlhttpreq"); 
     xmlhttp = new XMLHttpRequest(); 
    } else { 
     // code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    var grade = String(document.getElementById('grade').value); 
    var grade_type = document.getElementById('grade_type'); 
    var grade_type_value = String(grade_type.options[grade_type.selectedIndex].value); 
    var fn = String(document.getElementById('fn').value); 
    xmlhttp.open("GET","getuser.php?grade="+grade+"grade_type="+grade_type_value+"fn="+fn,true); 
    xmlhttp.send(); 
    document.getElementById('form').submit(); 
} 
} 

내용은 다음과 같습니다 :

<?php 
    require "config.php"; 

    $fn = $_GET["fn"]; 
    $grade = $_GET["grade"]; 
    $type = $_GET["grade_type"]; 

    echo "<script type='text/javascript'>alert('$fn');</script>"; 

    try { 
     $conn = new PDO("mysql:host=" . DB_SERVER . ";dbname=" . DB_NAME, DB_USERNAME, DB_PASSWORD); 
    } 
    catch(PDOException $e) { 
     die("Database connection could not be established."); 
    } 


    $sql = $conn->prepare("SELECT * FROM students WHERE fn = ?"); 
    $sql->execute(array($fn)); 
    if($sql->rowCount() > 0) { 
     $statement = $conn->prepare("INSERT INTO points (student_fn, type, grade, datetime) 
            VALUES (?, ?, ?, CURRENT_TIMESTAMP)"); 
     $statement->execute(array($fn, $type, $grade)); 
    } 
    else { 
     echo "<script type='text/javascript'>alert('No such fn');</script>"; 
    } 
    $conn = null; 
?> 

그러나 나는 경고의 결과를 볼 수 없을 있기 때문에 실행되지 없구요 생각한다 그러므로 나는 자바 스크립트와 PHP를 사용하고 있습니다. 나는 XMLHttpRequest로 일한 적이 없으므로 코드가 유효한지 여부조차 모릅니다. 어떤 도움을 주시면 감사하겠습니다.

+0

당신이 ("xmlhttpreq")을 경고 얻을 않았다 당신의 websitelike에 JQuery와 파일을 추가 할 필요가 있는지 확인;? – RE350

+0

네, 그 경고가 나타납니다 – mariya

+0

"document.getElementById ('form') 줄이있는 이유는 무엇입니까? submit();"?? – RE350

답변

0

jquery를 사용하여이 작업을 수행 할 수 있습니다.

$('#submit').click(function(){ 
    $.ajax({ 
     url: 'getuser.php', 
     type: 'GET', 
     data: $('#form1').serialize(), 
     success: function(result){ 
      alert("Your data has been uploaded"); 
      } 

    });   

});