2013-03-24 19 views
-1

我正在創建一個反饋表單,用戶可以在其中使用php mysqli寫入他們的反饋並將其存儲在數據庫中,而無需刷新整個頁面。我得到了成功的消息,但沒有任何輸入的數據可以幫助我嗎?我昨天問同樣的問題php mysqli insert and update queries帶有插入和更新查詢的php mysqli

feedback_form.php

<?php 

session_start(); 

$login = ($_SESSION['login']); 
    $userid = ($_SESSION['user_id']); 
    $login_user = ($_SESSION['username']); 
    $fname = ($_SESSION['first_name']); 
    $lname = ($_SESSION['last_name']); 
    $sessionaddres =($_SESSION['address']); 


?> 
<!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 href="style/stylesheet.css"rel="stylesheet" type="text/css"/> 

    <script type = "text/javascript"> 

    $(function(){ 

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


      var comments = $('#comments').val(); 


      $.ajax({ 

       url: 'feedback_process.php', 
       type: 'POST', 
       data: {"comments": comments}, 

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

       } 

      });   

      return false; 

     }); 


    }); 

    </script> 




    </head> 
<?php require_once('header.php'); ?> 

<body> 
<form action = "feedback_form.php" method = "post"> 
    <div id = "container"> 
      <h2><?php echo $login_user ?></h2> 



      <label for = "comments">Comments</label> 
      <textarea rows = "5"cols = "35" name = "comments" id = "comments"></textarea> 
      <br /> 
    </div> 
    </form> 
     <input type = "submit" name = "submit" id = "submit" value = "send feedBack" /> 




</body> 
</html> 

feedback_process.php

<?php 

session_start(); 

$login = ($_SESSION['login']); 
    $userid = ($_SESSION['user_id']); 
    $login_user = ($_SESSION['username']); 
    $fname = ($_SESSION['first_name']); 
    $lname = ($_SESSION['last_name']); 
    $sessionaddres =($_SESSION['address']); 


$conn = new mysqli('localhost', 'root', 'root', 'lam_el_chamel_db'); 

    echo"<pre>"; 
    print_r($_POST); 
    echo"</pre>"; 

    if(isset($_POST['comments'])){ 

    $comments = $_POST['comments']; 



    $query = "INSERT into feedback (feedback_text, user_name,) VALUES(?,?)"; 

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

    $stmt->bind_param('ss', $comments, $login_user); 
    $stmt->execute(); 

    } 
    $query2 = "UPDATE feedback SET feedback_text = ?, user_name = ? WHERE user_name = ? "; 
    $stmt = $conn->stmt_init(); 
    if($stmt->prepare($query2)) 
    { 
    $stmt->bind_param('sss', $comments, $login_user, $login_user); 
    $stmt->execute(); 

    } 



    if($stmt){ 

    echo "thank you .we will be in touch soon <br />"; 

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

} 

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

如果你已經問過這個問題,你爲什麼要再次發佈它?如果給出的答案沒有幫助,那麼解釋他們爲什麼不這樣做,並且提供答覆的人會嘗試幫助 – JConstantine 2013-03-24 20:20:57

+0

我再次問到,因爲沒有人在最後回覆後回答我,並且仍然有同樣的問題 – user2172837 2013-03-24 21:35:47

回答

0

第一:不要問任何問題兩次。只是因爲你回答他們兩次,你不會得到更好更快或答案...

成功消息只是告訴你,你已經訪問成功(而不是其他任何東西)的文件。基於此,我會嘗試單獨運行feedback_process.php(不包括feedback_form.php),並帶有「虛擬」註釋和「虛擬」login_user。當插入查詢不起作用時,我還添加了「失敗」的輸出...(您的代碼實際上只是爲更新反饋查詢(最後一個)實現了成功)

我希望下面的代碼有助於你...

<?php 
session_start(); 

$login = ($_SESSION['login']); 
$userid = ($_SESSION['user_id']); 
$login_user = ($_SESSION['username']); 
$fname = ($_SESSION['first_name']); 
$lname = ($_SESSION['last_name']); 
$sessionaddres =($_SESSION['address']); 


$conn = new mysqli('localhost', 'root', 'root', 'lam_el_chamel_db'); 

echo"<pre>"; 
print_r($_POST); 
echo"</pre>"; 


//Some dummys for debugging 
$comments = 'This is the comments'; 
$login_user = 'FOO'; 


$query = "INSERT into feedback (feedback_text, user_name) VALUES(?,?)"; 

$stmt = $conn->stmt_init(); 
if($stmt->prepare($query)) { 
    $stmt->bind_param('ss', $comments, $login_user); 
    $stmt->execute(); 
} 
else { 
    echo 'FAILED!'; 
} 

$query2 = "UPDATE feedback SET feedback_text = ?, user_name = ? WHERE user_name = ? "; 
$stmt = $conn->stmt_init(); 
if($stmt->prepare($query2)) { 
    $stmt->bind_param('sss', $comments, $login_user, $login_user); 
    $stmt->execute(); 
} 
else { 
    echo 'FAILED!'; 
} 

if($stmt){ 
    echo "thank you .we will be in touch soon <br />"; 
} 
else { 
    echo "there was an error. try again later."; 
} 

?>