2013-03-15 105 views
0

我正在用php和mysql創建一個簡單的註釋表單t連接到數據庫和jquery ajax用於不刷新頁面表單包含: 名稱電子郵件評論 問題在於名稱字段(名稱)在數據庫中只需插入值[1] 但是當我發佈的字段的值名稱它回顯正確的值任何人都可以幫助我?用Ajax在我的數據庫中插入特殊字符

submit_to_db.php

<?php 
    $conn = new mysqli('localhost', 'root', '', 'my_db'); 
    echo"<pre>"; 
    print_r($_POST); 
    echo"</pre>"; 

    if(isset($_POST['name_'])){ 
    $name =isset ($_POST['name_']); 
    $email = $_POST['email']; 
    $comments = $_POST['comments']; 



    $query = "INSERT into comments(name, email, comments) VALUES(?, ?, ?)"; 

    $stmt = $conn->stmt_init(); 
    if($stmt->prepare($query)){ 

    $stmt->bind_param('sss', $name, $email, $comments); 
    $stmt->execute(); 

    } 

    if($stmt){ 

    echo "thank you .we will be in touch soon <br />"; 
// echo $_POST['name']; 
    //echo $_POST['email']; 
    //echo $_POST['comments']; 

    } 
    else{ 
    echo "there was an error. try again later."; 
    } 

} 

else 
    echo"it is a big error"; 
?> 

這是形式的評論

的index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>feedback page</title> 
<script type = "text/javascript" src = "http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<link rel ="stylesheet" href = "css/default.css" /> 

<script type = "text/javascript"> 

$(function(){ 

    $('#submit').click(function(){ 
    $('#container').append('<img src = "img/loading.gif" alt="Currently loading" id = "loading" />'); 

     var name = $('#name_').val(); 
     var email = $('#email').val(); 
     var comments = $('#comments').val(); 


     $.ajax({ 

      url: 'submit_to_db.php', 
      type: 'POST', 
      data: 'name_=' + name + '&email=' + email + '&comments=' + comments, 

      success: function(result){ 
       $('#response').remove(); 
       $('#container').append('<p id = "response">' + result + '</p>'); 
       $('#loading').fadeOut(500, function(){ 
        $(this).remove(); 
       }); 

      } 

     });   

     return false; 

    }); 


}); 

</script> 




</head> 

<body> 
    <form action = "submit_to_db.php" method = "post"> 
    <div id = "container"> 
     <label for = "name">Name</label> 
     <input type = "text" name = "name_" id = "name_" /> 

     <label for = "email">Email address</label> 
     <input type = "text" name = "email" id = "email" /> 

     <label for = "comments">Comments</label> 
     <textarea rows = "5"cols = "35" name = "comments" id = "comments"></textarea> 
     <br /> 

     <input type = "submit" name = "submit" id = "submit" value = "send feedBack" /> 
    </div> 
    </form> 




</body> 
</html> 
+0

啊!最後有人不使用'mysql_ *'函數。 – asprin 2013-03-15 06:54:02

回答

0

的問題是在這裏

$name =isset ($_POST['name_']); 

應該

$name =$_POST['name_']; 

您使用isset它給值1,並存儲在$name並且由於它在數據庫中插入1。

+1

謝謝你,這是愚蠢的錯誤 – user2172837 2013-03-15 07:01:31