我用json響應制作了一個ajax表單。 json數組包含mysql數據庫以外的信息。現在我想在一個表格中顯示這些數據。在php中使用ajax json響應數組
我在隱藏的html文件中做了一個佔位符。
這裏我對AJAX/JSON的部分代碼:
$("#select_coffee_talk_year").button().click(function() {
var form = $('#coffee_talk_year');
var data = form.serialize();
$.ajax({
url: "include/scripts/select_event.php",
type: "POST",
data: data,
dataType: 'json',
success: function (select) {
//alert(select.ID[0]);
//alert(select.ID[1]);
//alert(select.ID.length);
$("#coffee_talk").fadeOut();
$("#coffee_talk").fadeIn();
}
});
return false;
});
這是我的html:
<p class="bold underline headline">Bereits eingetragen:</p>
<form id="coffee_talk_year" action="include/scripts/select_event.php" method="post" accept-charset="utf-8">
<select name="year_coffee_talk" id="year_coffee_talk">
<option value="none" class="bold italic">Jahr</option>
<?php
for($i=2008; $i<=$year; $i++){
if ($i == $year) {
echo "<option value=\"".$i."\" selected=\"$i\">".$i."</option>\n";
} else echo "<option value=\"".$i."\">".$i."</option>\n";
}
?>
</select>
<button id="select_coffee_talk_year">anzeigen</button>
<input type="hidden" name="coffee_talk_year_submit" value="true" />
</form>
<br />
<div id="coffee_talk"></div>
<br />
<button id="add_coffee_talk">hinzufügen</button>
select_event.php:
if ('POST' == $_SERVER['REQUEST_METHOD']) {
/*******************************/
/** Erzaehlcafe auswählen
/*******************************/
if (isset($_POST['coffee_talk_year_submit'])) {
$getID = array();
$getDate = array();
$getTheme = array();
$getContributer = array();
$getBegin = array();
$getPlace = array();
$getEntrance = array();
$getFlyer = array();
$sql = "SELECT
ID,
Date,
Theme,
Contributer,
Begin,
Place,
Entrance,
Flyer
FROM
Coffee_talk
WHERE
YEAR(Date) = '".mysqli_real_escape_string($db, $_POST['year_coffee_talk'])."'
";
if (!$result = $db->query($sql)) {
return $db->error;
}
while ($row = $result->fetch_assoc()) {
$getID[$i] = $row['ID'];
$getDate[$i] = $row['Date'];
$getTheme[$i] = $row['Theme'];
$getContributer[$i] = $row['Contributer'];
$getBegin[$i] = $row['Begin'];
$getPlace[$i] = $row['Place'];
$getEntrance[$i] = $row['Entrance'];
$getFlyer[$i] = $row['Flyer'];
$i++;
}
$result->close();
$response['ID'] = $getID;
$response['Date'] = $getDate;
$response['Theme'] = $getTheme;
$response['Contributer'] = $getContributer;
$response['Begin'] = $getBegin;
$response['Place'] = $getPlace;
$response['Entrance'] = $getEntrance;
$response['Flyer'] = $getFlyer;
echo json_encode($response);
}
}
事業部使用id = coffee_talk是我的佔位符。現在,我想在表中消失,其數據,如果我改變的一年,與按鈕提交它,我想淡出舊的和漸新。
我唯一的問題是,我需要寫這個在循環中的php表。但我認爲它不可能在Java Script中使用。我該怎麼辦?
PS我使用了ajax,因爲我不想重載所有的時間。
什麼是不可能的JavaScript?循環?另外 - 響應AJAX的代碼在哪裏?你對你的JSON響應做了什麼?如果你要返回JSON,你將不得不建立你的桌子clientside;如果您返回HTML,則可以直接將其放入文檔中。另外,你很可能想在fadeOut上使用回調。在javascript中可以使用 – Amadan
循環。不知道如何將這些東西放入div中。我應該寫一個var並將所有值放入一個大字符串中嗎?然後$('#...')。html($ string)這個? – JPM
我知道循環是可能的在JS - 我只是不明白你的句子提到。你可以建立一個HTML字符串,按照你的說法做'.html';您可以一次一個顯式構建節點並構建一個文檔片段;或者您可以在PHP中構建HTML並將其作爲HTML而不是JSON傳輸,並使用'$('#...')。load('select_event.php')'。 – Amadan