2016-05-08 23 views
-1

你好,我有問題試圖插入表單數據到MySQL數據庫。我有下面的代碼,因爲我甚至不知道從哪裏開始解決問題。下面的文件是discussion.php,它是我嘗試實施的討論板的主頁。該表單從點擊彈出,然後它應該在POST中存儲表單詳細信息,並從那裏它應該插入數據庫!將表單模式提交到MySql相同的文件

<table> 
    <tr> 
     <td id="discuss_nav"> 
     <ul class="nav nav-pills"> 
      <li><a id="general" href="#general">General</a></li> 
      <li><a id="parks" href="#parks">Dog Parks</a></li> 
      <li><a id= "events" href="#events">Events</a></li> 
      <li><a id="questions" href="#questions">Q&A</a></li> 
      <li><a id="sophos" href="#sophos">Sophos</a></li> 
      <li ><button id="newpost" type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal" href="#newpost">New Post</button></li> 
     </ul> 
    </td> 
    <td> 
     <div id="laptop"><p id="discuss_intro">Here you can chat with fellow Sophos dog lovers, or just people who love Sophos and their dogs. To get started, click on the discussion topics to see older posts or create a new post to start some conversation. Happy chatting!</p></div> 
     <div id="success_parent"></div> 
    </td> 
    <td> 
    <div id="success_child"></div> 
    </td> 
    <tr> 
</table> 

<?php 


if (isset ($_POST['submit']) && $_POST['submit']=='Add To Records') { 
    // check if the form was submitted 
    //do db thing here 
    $hostname="localHost"; 
    $username="removed"; 
    $password="removed"; 
    $dbname="removed"; 
    $usertable="removed"; 

    $link = mysql_connect($hostname, $username, $password); 

    if (!$link) { 
     die('Not connected : ' . mysql_error()); 
    } 

    // make foo the current db 
    $db_selected = mysql_select_db($dbname, $link); 

    if (!$db_selected) { 
     die ('Can\'t use foo : ' . mysql_error()); 
    } 

    $title = mysql_real_escape_string($_POST['title']); 
    $author = mysql_real_escape_string($_POST['author']); 
    $content = mysql_real_escape_string($_POST['content']); 
    $topic = mysql_real_escape_string($_POST['topic']); 

    //Define the query. Note in this query we use the table "errors" 
    $query = "INSERT INTO discuss (title, name, content, topic) VALUES ('{$title}', '{$author}', '{$content}', '{$topic}')"; 

    //Execute the query 
    mysql_query ($query); 

    mysql_close(); 
} 

?> 
    <!-- Modal --> 
    <div class="modal fade" id="myModal" role="dialog"> 
    <div class="modal-dialog"> 

     <!-- Modal content--> 
     <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal">&times;  </button> 
      <h2 class="modal-title">New Post</h2> 
     </div> 
     <div class="modal-body"> 
      <p> 
      <form name= "postform" action="discuss.php" method="post" class = "newpostform"> 
     <fieldset> 
      <div class="newpostform-group1"> 
       <input autocomplete="off" autofocus class="form-control" name="post_title" placeholder="Post Title" type="text"/> 
      </div> 

      <div class="newpostform-group1"> 
       <input class="form-control" name="author" placeholder="Author" type="text"/> 
      </div> 

      <div class="newpostform-grouplist"> 
      <select name="topic" class ="topic_drop"> 
       <option selected disabled>Select Topic</option> 
       <option value="General">General</option> 
       <option value="Dogparks">Dog Parks</option> 
       <option value="QandA">Q&A</option> 
       <option value="Sophos">Sophos</option> 
      </select> 
      </div> 

      <div class="newpostform-group2" id = "desc"> 
       <textarea class="form-control" name="content" placeholder="Text" type="text"></textarea> 
      </div> 

      <div class="newpostform-group3"> 
       <button class="btn btn-default" name="submit" type="submit" id="addpost"> 
        <span aria-hidden="true" class="glyphicon glyphicon-log-in"></span> 
       Add Post 
       </button> 
      </div> 

    </fieldset> 
</form> 
<br> 



     </p> 
     </div> 
     <div class="modal-footer"> 
     <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
     </div> 
     </div> 

    </div> 
    </div> 

</div> 

</body> 
</html> 
+0

的,什麼是錯誤你有嗎? –

+0

你被標記爲jquery,但沒有代碼來支持這個問題。 –

+0

您在2天前發佈,但沒有回到這裏。我發佈了一個答案,低於這個答案,一些麻煩的人被低估了。 *呃*,反正......你能做些什麼呢,對吧? * pffft * –

回答

-2

首先,在以下條件時從來沒有遇到過:

&& $_POST['submit']=='Add To Records' 

,因爲沒有元件軸承,條件語句將執行內部的價值並沒有什麼。

,如果您添加了一個else{ echo "Not set."; }

if (isset ($_POST['submit']) && $_POST['submit']=='Add To Records') {...},你會看到「未設置」。消息出現。

因此,你需要通過添加value="Add To Records"將其更改爲以下:

<button class="btn btn-default" name="submit" type="submit" id="addpost" value="Add To Records">Add To Records</button> 

請注意,如果你把它用小寫改爲value="Add to records"「到」和「記錄」,條件語句將失敗。

  • 區分大小寫。

檢查錯誤是否也對您的查詢,如果它失敗的地方。

而且這個name="post_title"似乎與$_POST['title']和不匹配。因此,您需要使它們在數組名稱中匹配。

然後,你必須

<textarea class="form-control" name="content" placeholder="Text" type="text"> 
                    ^^^^^^^^^^^ 

<textarea>元素沒有一個 「類型」,因此將其刪除。

關於mysql_query ($query);的旁註。您可能必須將連接參數傳遞給它,例如mysql_query ($query, $link);

error reporting添加到您的文件的頂部,這將有助於發現錯誤。

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// Then the rest of your code 

旁註:顯示錯誤應該只在分期完成,並且從不生產。

如果您收到有關不推薦使用的MySQL庫的通知,那麼您可能會被迫切換到MySQLi_ API或PDO,這是您現在應該使用的一種方式,因爲從PHP 5.5開始已棄用並從PHP中刪除7。0

參考:(預處理語句)

+0

感謝downvote,它讓我活着。 –

+0

哦,這是正確的答案':p' –