2013-11-26 3 views
0

이 PHP 코드는 내 양식에 있습니다. mysql 데이터베이스에 들어가고 데이터를 삽입하기 위해 pdo를 사용했다. 사용이 그의 이름, 이메일, 설명 및 체크 박스를 입력하는 간단한 양식. 나는 이것을 jquery 모바일 환경에서 사용한다. ?제출 성공 후 PHP PDO를 사용하여 양식을 지우는 방법

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST" name="comments" id="comments"> 

<div data-role="fieldcontain"> 
    <label for="sendName">From: </label> 
    <input type="text" name="sendName" class="validate[required"] id="sendName" data-clear-btn="true" placeholder="Enter name" required > 
</div> 

<div data-role="fieldcontain"> 
    <label for="sendEmail">Email: </label> 
    <input type="email" name="sendEmail" id="sendEmail" class="validate[required,custom[email]]" data-clear-btn="true" placeholder="[email protected]" required > 
</div> 

<label for="comments"></label> 
    <textarea name="comments" id="comments" value="comments"></textarea> 
<label for="offer"> 

<label for="offer"> 
    <input name="offer" type="checkbox" id="offercheckbox">Please check</label> 
</label> 

<input type="button" name="Send Email" value="Submit" id="suggestSubmit" onclick="submitForm()"> 

</form> 

내 문제는 내가 어떻게 성공적으로 제출 한 후 양식 필드를 취소하는 을 알아 내려고 노력하고있다 :>

<?php 
    $hostname = 'localhost'; 
    $username = 'root'; 
    $password = ''; 
    $dbName = 'database'; 

try 
    { 
     $dbh = new PDO("mysql:host=$hostname;dbname=$dbName", $username, $password); 
     $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $dbh->exec('SET NAMES "utf8"'); 
    } 
     catch(PDOException $e) 
    { 
     echo "Sorry, you are experiencing server Error: ".$e->getMessage(); 
     exit(); 
    }  

if(isset($_POST['sendEmail'])) 
{ 
    try 
    { 
     $senderName = $_POST['sendName']; 
     $senderEmail = $_POST['sendEmail']; 
     $comments  = $_POST['comments']; 
     if (isset($_POST['offer'])) { 
      $offer = 1; 
     } else { 
      $offer = 0; 
     } 
     $dateTimeSent = date('Y-m-d H:i:s'); 

     $q= "INSERT INTO comments(sendName, sendEmail, comments, offer, dateTimeSent) VALUES (:sendName, :sendEmail, :comments, :offer, :dateTimeSent);"; 
     $query = $dbh ->prepare($q); 
     $results = $query->execute(array(
      ":senderName"=>$sendName, 
      ":senderEmail"=>$sendEmail, 
      ":comments"=>$comments, 
      ":dateTimeSent"=>$dateTimeSent, 
      ":offer"=>$offer, 
    )); 
    } 
    catch (PDOException $e) 
    { 
    $error = 'Error adding elements to database: ' . $e->getMessage(); 
    include 'error.html.php'; 
    exit(); 
    } 

    exit(); 
} 

은 내가 사용하는 형태이다. JQuery onclick 함수를 사용하는 옵션을 발견했습니다. 양식이 제출 된 경우,

<script> 
    function submitForm() { 
    $('form[name="comments"]').submit(); 
    $('input[type="email"], textarea').val(''); 
    $('input[type="text"], textarea').val(''); 
    } 
</script> 

그러나 그러나 모든 필드가 제출 인해 실패하는 경우에도 삭제 된 것, JQuery와 유효성 검사에 실패했지만 형성 국한되지 : 나는 폼 태그의 끝 이전에이 코드를 삽입 확인. 따라서 사용자가 오류를 수정하면 사용자는 모든 양식 필드의 모든 데이터를 다시 입력해야합니다. 안좋다.

다른 답변을 여기에서 확인하고 다른 온라인 자료를 볼 수는 있지만 제대로 작동하지 않는 것 같습니다.

jquery 모바일에서 PHP-PDO를 사용하면 성공적인 제출 후 양식 필드를 지우는 가장 좋은 방법은 무엇입니까?

추신. 나는 초보자입니다. 감사.

답변

0

header 기능을 사용하여 양식 페이지로 HTTP 리디렉션을하면 사용자가 처음으로이 페이지를 방문하는 것처럼 빈 상태로 페이지의 양식 요소를 확인해야하는 상당히 새로운 요청입니다.

이전 요청이 성공적으로 처리되었다는 느낌을 받으려면이 페이지를 열 때 사용자의 성공 메시지를 보는 것이 좋습니다.

+0

답장을 보내 주셔서 감사합니다. 나는이 선택을 분명히 시도 할 것이다. 일단 코드를 완성하면 수표를 줄 것입니다. – Synod

+0

Thanks @ Ma'moon Al-Akash 내가 성공적으로 정리 작업을 수행했을뿐만 아니라 UX를 UX 페이지로 리디렉션하여 향상 시켰습니다 (나중에 수행 할 것이지만 한 돌로 모두 맞았습니다). 헤더는 도전 과제 였지만 논리와 시행 착오를 사용하여 찾을 수있었습니다. – Synod

+0

한 가지 더, 나는 이것이 작동하도록 양식 태그에 data-ajax = "false"를 두어야한다는 것을 알아 차렸다. – Synod

관련 문제