0

こんにちは、評価、名前、メール、コメントを含むフォームがあります。名前、電子メール、コメントのユーザー入力データを挿入できます。しかし、星評価をデータベースに保存する方法がわかりません。誰でも私を助けてください。ありがとう

      <?php
if(isset($_POST['submit']))
{

$name = $_POST['name'];
$email = $_POST['email'];
$comments = $_POST['comments'];
$ratings = $_POST['ratings'];
$link = mysqli_connect("localhost", "root", "", "imakr");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}


$res = mysqli_query($link, "insert into imakr.customer_review(name, email, comments, ratings) values('$name','$email','$comments', '$ratings')");

    if($res)
    {
        echo "Your feedback is saved";
    }
    else
    {
        echo " OOPs!! there is some error. Please check the fields";
    }

}
?>

<form id="customer_review" name="cust_rev"action="" method="post" onsubmit="return validate()">
  <table width="535" border="0">
    <tr>
      <td>Rate This Product:
      </td>
      <td>
      <span id="rateStatus">Rate Me...</span>
<span id="ratingSaved">Rating Saved!</span> 

<div id="rateMe" title="Rate Me...">
    <a onclick="rateIt(this)" id="_1" title="Poor" onmouseover="rating(this)" onmouseout="off(this)"><span class="ratings">1</span></a>
    <a onclick="rateIt(this)" id="_2" title="Not Bad" onmouseover="rating(this)" onmouseout="off(this)"><span class="ratings">2</span></a>
    <a onclick="rateIt(this)" id="_3" title="Pretty Good" onmouseover="rating(this)" onmouseout="off(this)"><span class="ratings">3</span></a>
    <a onclick="rateIt(this)" id="_4" title="Excellent" onmouseover="rating(this)" onmouseout="off(this)"><span class="ratings">4</span></a>
    <a onclick="rateIt(this)" id="_5" title="Marvellous" onmouseover="rating(this)" onmouseout="off(this)"><span class="ratings">5</span></a>
</div>
      </td>
    </tr>
    <tr>
      <td width="129"><span class="titles">Name</span><span class="star">*</span>:</td>
      <td width="396"><label for="name"></label>
      <input type="text" name="name" id="name" /></td>
    </tr>
    <tr>
      <td><span class="titles">Email</span><span class="star">*</span>:</td>
      <td><label for="email"></label>
      <input type="text" name="email" id="email" /></td>
    </tr>
    <tr>
      <td height="61">Comments:</td>
      <td><label for="comments"></label>
      <textarea name="comments" id="comments" cols="45" rows="5" onchange="maxlength('comments', 500)"></textarea></td>
    </tr>

    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="submit" id="submit" value="Submit" /></td>
    </tr>
  </table>
  <p>&nbsp;</p>
</form>
4

2 に答える 2

3
  1. 整数の評価のみを保存する場合は、[例: 星 3/5] を使用して、データ型を選択しますTINYINT。星の分数を保存する場合は、[例: 3.5/5 星] を使用しますDECIMAL(2,1)
  2. 複数の評価を防ぐために、ユーザーに関する識別情報を保存します。ユーザーが何かを評価するためにログインする必要がない場合は、評価とともに IP アドレスを保存します。
于 2013-03-27T15:39:03.663 に答える
2

評価という名前の非表示の入力フィールドを作成します

<input id="ratings" type="hidden" name="ratings" value="" />

次に、ハチがクリックした評価値に応じて、Javascript を使用してこの入力の値を動的に更新します。

次のようなもの:

document.getElementById('ratings').value='4'

または、フォームを送信せずにこれを動的に行いたくない場合は、AJAXリクエストを使用してこの情報をデータベースに送信できます。

ただし、非常に大きな補足事項として、さらに先に進む前に、関数の使用をやめて、 PDOまたはmysqli の使用を開始してくださいmysql_*。もちろん、SQL インジェクションによってデータベース全体が削除されるのを見たくない場合を除き、バインドされた値を持つ準備済みステートメントを特に見てください。

于 2013-03-27T15:35:16.730 に答える