2011-11-01 4 views
0

지금은 PHP로 웹 프로젝트를 진행하고 있으며 다음 단계에서는 원래의 포스트 백 옵션을 AJAX로 변경하려고합니다. 지난 주에 우리는 PHP로 MySQL에 코멘트를 보냈습니다. 이번 주에는 포스트 백을 사용하는 대신 비동기 적으로 발생하기를 원합니다.이 사용 방법을 다소 혼란스럽게합니다.포스트 백을 AJAX로 변경하기

jQuery 라이브러리를 사용하고 분명히 AJAX를 사용하십시오. 나는 AJAX.net 툴킷을 사용했지만 많은 AJAX가 아니었기 때문에 어떻게 전환해야하는지 혼란 스럽다. heres는 당신이 그것을 원하는 경우 일부 코드 ...

if($_POST){ 

//Connection string to get to database 
$host = 'localhost'; 
$user = 'user'; 
$password = 'pw'; 
$dbh = new mysqli($localhost, $user, $password, "database schema name"); 

//Prpared statement for user inpur, prevent sql-injection attacks 
$isEntered = $_POST['txt_isEntered']; 
$stmt = $dbh->prepare("INSERT INTO tbl_Comment (comment, project_title, parent_comment_id) VALUES (? , ? , ?)"); 
$stmt->bind_param('ssi', $prevComment, $prevAssignment, $parentID); 

//if this is for parent level comments 
if(strcmp($isEntered, 'yes') == 0){ 

    $prevComment = $_POST['txt_comment']; 
    $prevAssignment = $_POST['txt_assignment']; 
    $parentID = $_POST['txt_pid']; 


    $stmt->execute(); 
} 
    if(strcmp($isEntered, 'nested') == 0){ 

    $prevComment = $_POST['txt_nestedComment'];  

    $prevAssignment = $_POST['txt_assignment']; 
    $parentID = $_POST['txt_pid']; 

    $stmt->execute(); 

} 

//redirect page 
header("Location: viewComments.php"); 
exit(); 

}

이는 않는 페이지의 시작 부분에 사용자가 페이지를 새로 고치면 경우 게시물, 리디렉션, 새로 고침 방법 (사용 사용자가 페이지 자체를 리디렉션, 삽입 버튼을 누를와 T로 전환 될 때 그 자체를 리디렉션 때문에 insert 명령)을 heres

정보를 얻는 코드 ...

  echo "<form action=\"viewComments.php\" method = \"post\">"; 
       echo "<textarea rows='3' cols='20' name='txt_nestedComment'>Enter comment here...</textarea>" . "</br>"; 
       echo "<input tpye = 'text' name = 'txt_assignment' value = $assignment class = 'hidden'>"; 
       echo "<input tpye = 'text' name = 'txt_pid' value = $cid class = 'hidden'>"; 
       echo "<input tpye = 'text' name = 'txt_isEntered' value = 'nested' class = 'hidden'>"; 
     echo "<button type='submit'>Submit Comment</button>" ; 
     echo "</form>"; 

를 반복하지 그는 이전 코드를 작성한 다음 물건을 삽입합니다. 어떤 아이디어를 AJAX로 변환 할 수 있을까요? 더 많은 코드가 필요하면 질문하십시오! 감사!

답변

0

Ajax를 사용하면 양식을 제거 할 수 있습니다. 자바 스크립트를 통해 스크립트에 값을 보냅니다.

$.ajax({ 
    type: "POST", 
    url: "addcomment.php", 
    data: "assignment=" + $('txt_assignment').val() + "&pid=" + $('txt_pid').val() + "Boston", 
    success: function(newTableRowCodeFromServer){ 
    $("#commmentsTable").append(newTableRowCodeFromServer); 
    } 
}); 

이 전송할 데이터가 다음 addComments 현재 테이블 또는 코멘트 표시의 끝에 삽입 행을 생성 응답 될 것이다 사전 처리한다.

+1

데이터의 경우 양식에 ID를 설정하고 다음과 같이 사용할 수 있습니다.'data : $ ('# myForm'). serialize(),'- 이것은 양식을 전체 양식으로 보내는 조금 깨끗한 방법입니다. 서버를 수동으로 지정하지 않아도됩니다. –

+0

동의, 좋은 추가. –

+0

안녕하세요, 답변 해 주셔서 감사합니다. 그냥 궁금해서 ... 그래서 내 SQL 코드는 addcomment.php에 갈 것인가? – willykao

관련 문제