MySQL データベースからニュースレターを選択できる形式で動的に作成されたドロップダウン リストがあります。ニュースレターを選択すると、データベースのコンテンツがテキストエリアに挿入されます。
ドロップダウン リストは次のとおりです。
<?php
echo "<select id=\"NieuwsbriefSelect\" name=\"show\">";
echo "<option size =30 selected>Select</option>";
if(mysql_num_rows($sql_result))
{
while($row = mysql_fetch_assoc($sql_result))
{
echo "<option value=\"$row[Titel]\">$row[Titel]</option>";
}
}
else {
echo "<option>No Names Present</option>";
}
?>
jquery は次のとおりです。
<script>
// variable to hold request
var request;
$(document).ready(function() {
$('#NieuwsbriefSelect').change(function() {
//send Ajax call to get new contents
var selected_text = $(this).val();
// setup some local variables
var $form = $("#myForm");
// let's select and cache all the fields
var $inputs = $form.find("input, select, button, textarea");
// serialize the data in the form
var serializedData = $form.serialize();
alert(serializedData);
// fire off the request to /get_my_contents.php
request = $.ajax({
url: "/get_my_contents.php",
type: "GET",
data: serializedData
});
alert("ajax call done");
// callback handler that will be called on success
request.done(function (response, textStatus, jqXHR){
//populate the TextArea
alert(response);
$("textarea[name='content']").html(response);
});
});
});
</script>
get_my_contents.php:
<?php
$title = $_REQUEST["show"];
mysql_connect('localhost','root','root');
mysql_select_db('NAW') or die (mysql_error());
$strSQL = "SELECT Content from NAW.Mail where Titel = '$title' ";
$sql_result = mysql_query($strSQL);
$row = mysql_fetch_assoc($sql_result);
print urldecode($row["Content"]);
?>
したがって、応答をテキストエリアに追加する必要があります。ただし、問題は、ajax リクエストが何もしていないように見えることです。これを実行してドロップダウン リストからニュースレターを選択すると、最初の 2 つのアラートが表示されますが、その後は何もしません。また、私は基本的に Jquery の経験がありませんが、他の誰かがこれを使用する必要があると提案し、現在の状態のようにするのを手伝ってくれたことにも言及します。誰かが何が間違っているかを確認したり、別の方法を提案したりできれば、それは素晴らしいことです!
注: mysql_* を使用すべきではないことはわかっています。後で PDO に変更する予定です。