-4

フォームがあり、フォームに入力したら、データをデータベースに挿入したいと思います。現在、データベースには「フィードバック」と「日付」の2つの列があります。ただし、現時点では、「フィードバック」ではなく、「日付」のみがデータベースに挿入されます。

HTMLフォーム:

<form class="form-inline" action="JavaScript:sendFeedback()" method="get">
<textarea name="Feedback" placeholder="Feedback..." rows="5" cols="100"></textarea> 
<button type="submit" class="btn">Tell us</button>
</form>

Javascript:

function sendFeedback() {
    _gaq.push(['_trackPageview', 'OutgoingLink=SendFeedback' ]);
    $.get("../php/NewFeedback.php",{Feedback:$('input[name="Feedback"]').val()});
    var element = document.getElementById("FeedbackArea");
    element.innerHTML = "<div class=\"alert alert-success\"> <a class=\"close\" data-dismiss=\"alert\" href=\"#\">×</a>Thanks for your feedback!</div>";
    return false;
}

php:

$db = MySql::getInstance(DATABASE_HOST, DATABASE_USER, DATABASE_PASS, DATABASE_NAME);
$Feedback = mysql_real_escape_string($_GET['Feedback']);

//create the sql statement
$sql = "INSERT INTO Feedback VALUES('{$Feedback}', CURDATE());";

//execute the query
$res = $db->query($sql);

そして、私が言ったように、テキストエリアに何かを入力して「Tell us」ボタンを押すと、データベースは新しいエントリを取得しますが、「Feedback」属性は空です(そして日付が入力されます)。

どうしてこれなの?

4

2 に答える 2

1

フィードバックという名前の入力がなく、テキストエリアがあるため$('input[name="Feedback"]').val()、フィールドの値は提供されません。

于 2012-12-29T18:09:31.363 に答える
0

コードを変更します。

$('textarea[name="Feedback"]').val()

そしてそれは動作します。

于 2012-12-29T18:24:36.083 に答える