2010-12-27 5 views
0

私のウェブサイト(index.php)に投稿フォームがあり、MySQLデータベースに保存されているデータ(ユーザー投稿)があります。今、私はユーザーが投稿を提出してから、そのページが入力した内容を示すupdate.phpにそれらのページを誘導します。MySQLデータベースをindex.phpに表示する方法

ただし、MySQLのデータベース内のすべてのデータをindex.phpに表示したいとします。これはコメントシステムのようなものです。ユーザーは投稿を送信し、同じページに投稿された投稿の上に投稿を表示します。私はAJAXがないと思う...?

は、ここで私はこれを持ってupdate.phpをオンにindex.php

<div align="center"> 
<p>&nbsp;</p> 
<h2 align="center" class="Title"><em><strong>REDACTED</strong></em></h2> 
<form id="form1" name="form1" method="post" action="update.php"> 
<hr /> 
<label><br /> 
    <form action="update.php" method="post"> 
REDACTED: <input type="text" name="text" /> 
    <input type="submit" /> 
    </form> 
    </label> 
</form> 
</div> 
のためのコードです:

?php 
    $text = $_POST['text']; 
    $myString = "REDACTED"; 

    mysql_connect ("db----.net", "-----3", "------------") or die ('Error: ' . mysql_error()); 
    mysql_select_db ("-----------"); 

    $query="INSERT INTO TextArea (ID, text) VALUES ('NULL', '".$text."')"; 

    mysql_query($query) or die ('Error updating database'); 

    echo " $myString "," $text "; 

    ?> 

どうもありがとう!

+7

まず、基本を学ぶ必要があります。 –

+0

私は今、他の人があなたの質問に答えることができるかもしれません、とにかくここでいくつかのヒント:1)あなたは同じページを 'index.php'(ajaxなし)に' updateで同じコードを使って送信することができます。あなたはDBからすべてのデータを取得し、それらの中でそれらを出力するフォームの上にDIVを持っている2)あなたは "安全に" DBに挿入されるデータを準備していません! – ifaour

+0

まず入れ子になったフォームをクリーンアップしてください。これは一般的には悪い考えです。次に、残りの部分を簡単なチャンクに分割します。データベースに値をサブミットして保存する。すべての値を照会して表示する。その後、それらを1ページにまとめる。 –

答えて

3

私は主に、ネストされたformタグを取り除くために、少しあなたのHTMLを固定:

<div align="center"> 
    <p>&nbsp;</p> 
    <h2 align="center" class="Title"><em><strong>REDACTED</strong></em></h2> 
    <form method="post" action="update.php"> 
     <label for="text">REDACTED:</label> <input type="text" name="text" /> 
     <input type="submit" /> 
    </form> 
</div> 

それはまだあなたがすべき、しかし素晴らしいではありません。

  • 変更<div align="center"><div id="container">に、 CSSの#container {text-align:center}に設定してください。
  • <p>&nbsp;</p>の代わりに#container {padding-top:24px}を削除してください。
  • <h2 align="center" class="Title"><em><strong>REDACTED</strong></em></h2><h2>REDACTED</h2>に変更し、.Titleに追加CSSルール:text-align: center; font-weight: bold; font-style: italic
  • お客様のinputの名前は、おそらくtextよりも優れているはずです。調整

PHP:

<?php 

$text = $_POST['text']; 
$myString = "REDACTED"; 

mysql_connect ("db----.net", "-----3", "------------") or die ('Error: ' . mysql_error()); 
mysql_select_db ("-----------"); 

$query = "INSERT INTO TextArea (ID, text) VALUES (NULL, '" . mysql_real_escape_string($text) . "')"; 
mysql_query($query) or die ('Error updating database: ' . mysql_error()); 

echo "$myString - $text<hr />"; 

$query = "SELECT text FROM TextArea ORDER BY ID DESC"; 
$result = mysql_query($query) or die ('Error querying database:' . mysql_error()); 
while ($row = mysql_fetch_assoc($result)) { 
    echo $row['text'] . '<hr />'; 
} 

?> 
  • AJAXはそれがはるかに複雑になり、私はそれを使用していませんでした。
  • 誰かがupdate.phpに送信すると、送信されたテキストが表示され、その下にすべての前回の投稿が表示されます。
  • SQLインジェクションを防ぐためにmysql_real_escape_string()を追加しました。これは非常に重要です。悪意のあるユーザーは、すべてのデータを削除するなどの作業を行うことができます。参照してください:GoogleWikipediaObligatory xkcd
  • 私はmysql_error()を追加しました。あなたのSQLが失敗した場合、あなたはより良いアイデアを持っています。
+0

うわー.. thirtydot私はこれほど多くのことを手助けするためにあなたの道から出たとは信じられません。私は学ぶべきことがたくさんある。どうもありがとうございます。ああ、ありがとう、ありがとう。もし私ができるならば私はupvoteだろうが、私は2週間だけこの試合にいた – Truong

0

同じページ内のデータを表示するには、下のようにしなければならない:

<form method="post" action=**"index.php"**> 
    <label for="text">REDACTED:</label> <input type="text" name="text" /> 
    <input type="submit" onsubmit="addInputedData"/> 
</form> 


と同じページで入力されたデータを表示するために、あなたはその関数を作成する必要があります
(上記に見える)

P、中にあなたが入力し、あなたがdisplaしたいデータなど、とのをonSubmitイベントで呼び出さをタグ H3タグなどとしてあなたのページに要素を追加するためにAJAXを使用
関連する問題