2013-03-24 4 views
-1

사용자 의견을 작성하여 전체 페이지를 새로 고치지 않고 php mysqli를 사용하여 데이터베이스에 저장할 수있는 피드백 양식을 작성 중입니다. 성공 메시지를 받았지만 입력 된 데이터가 없으면 누구도 나를 도울 수 있습니까? 질문을 두 번 묻지 마세요 : 어제 같은 질문 php mysqli insert and update queriesPHP 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

+0

마지막 답장을 한 후에 아무도 응답하지 않았기 때문에 다시 질문했습니다. 여전히 같은 문제가 있습니다. – user2172837

답변

0

물었다. 두 번 답변을했기 때문에 더 나은 답변을 얻지 못할 것입니다 ...

성공 메시지는 단지 에 성공한 파일이 있고 그 밖의 것은 아무것도 없다고 알려줍니다. 이것을 기반으로 feedback_form.php를 사용하지 않고 "더미"주석과 "더미"login_user로 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>"; 


//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."; 
} 

?>