2016-05-08 5 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日前に投稿しましたが、ここに戻っていませんでした。私はいくつかのnumbnuts downvoted下の答えを掲載しました。 * Meh *、とにかく...あなたはそれについて何ができますか? * pffft * –

答えて

-2

はまず、以下の条件が満たされることはありません:

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

その条件文内の値と何が実行されることをベアリング要素がないとして。

あなたはif (isset ($_POST['submit']) && $_POST['submit']=='Add To Records') {...}else{ echo "Not set."; }

を追加しているだろう場合は、「設定しない」を見ているだろうメッセージが表示されます。

はそのため、あなたは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 –

関連する問題