我有一個PHP
頁面,該頁面顯示錶中MYSQL
數據庫的記錄。我希望能夠通過單擊單元格來編輯表格單元格中的記錄。過程中,我的圖片會是這樣的:使用AJAX將PHP表單提交到MYSQL數據庫
1)onclick()
事件的表格單元格觸發ajaxfunction()
2)ajaxfunction()
細胞數據發送到PHP網頁,其中querys數據庫並顯示下拉選項列表。
3)用戶從下拉列表
4選項)onchange()
事件提交表單數據庫
5)表單元格或頁面被刷新,以顯示當前表單元數據。 (目前不在我現有的代碼中)
現在我有兩個PHP
頁面ac_sched.php
和ModSched.php
。
下面是每個頁面的結構:
ac_sched.php
:
PHP
創建的表顯示MYSQL
記錄ajaxfunction
查詢可用的電池選項
ModSched.php
數據庫:
PHP
代碼從數據庫中選擇可用的單元格選項並創建下拉菜單。PHP
用於從下拉列表中選擇選項更新數據庫的代碼。
這裏是代碼的有關章節,從每一頁:
ac_sched.php:
<script>
function ACSchedQuery(reg)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(reg).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","../process/ModSched.php?ModSched_Reg="+reg,true);
xmlhttp.send();
}
</script>
<table>
<tr>
<td id="ABC-Day-3" onclick="ACSchedQuery(this.id)"></td>
</tr>
......rest of table here......
</table>
ModSched.php:
// This is to request the options from the database
if(isset($_GET['ModSched_Reg']))
{
$ModSched_Array = explode("-",$_GET["ModSched_Reg"]);
$ModSched_Reg = $ModSched_Array[0];
$ModSched_Day = $ModSched_Array[1];
$ModSched_ID = $ModSched_Array[2];
$sql4 = ("SELECT * FROM aircraft_sched_options WHERE SchedOpt_ID != 0");
if(!$result_sql4 = $mysqli->query($sql4))
{
echo QueryCheck("getting the schedule options ","from the aircraft sched options",$mysqli);
}
?>
<form action="../process/ModSched.php" method="post">// I did try: action=""
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<?php
echo "<select name=\"ModSched_ID\">";
while($SchedOpt = $result_sql4->fetch_assoc())
{
echo "<option value=\"" . $ModSched_Reg . "-" . $ModSched_Day . "-" . $SchedOpt['SchedOpt_ID'] . "\" onchange=\"formSubmit(this.form)\"";
if($SchedOpt['SchedOpt_ID'] == $ModSched_ID)
{
echo " selected=\"selected\"";
}
echo ">" . $SchedOpt['SchedOpt_Name'] . "</option>";
}
echo "</select>";
?>
</td>
</tr>
</table>
</form>
<?php
}
// This is to submit the selected option to the database
if(isset($_POST['ModSched_ID']))
{
$ModSched_Array = explode("-",$_POST["ModSched_ID"]);
$ModSched_Reg = $ModSched_Array[0];
$ModSched_Day = $ModSched_Array[1];
$ModSched_ID = $ModSched_Array[1];
$sql4 = ("UPDATE aircraft_status SET $ModSched_Day = $ModSched_ID WHERE AC_Reg = $ModSched_Reg");
if(!$result_sql4 = $mysqli->query($sql4))
{
echo QueryCheck("updating the aircraft schedule ","into the aircraft sched",$mysqli);
}
}
我知道這是一個很大的代碼,但我認爲這一切都需要的,以便顯示整個故事。
我想如果有人只是看看我有的代碼結構,那會告訴我,如果我在正確的軌道上,這將是一個很大的幫助。以下是關於我的代碼的問題:
1)表單是否在正確的位置提交更改? - 我之前有第二個ajaxfunction()
將選定的選項提交到表單提交頁面。這不起作用,但它可能是我的代碼而不是結構本身。
2)我是否應該在自己的頁面上填寫表單提交代碼?
本週我剛剛開始使用AJAX
,所以我可能會在這裏脫穎而出。任何幫助是極大的讚賞。
你有沒有考慮過使用類似jqGrid或DrasticTools的庫? – Barmar 2013-04-18 06:23:04
你應該肯定看看jquery – Breezer 2013-04-18 06:23:12
@Barmar不,我從來沒有聽說過這些。 – 2013-04-18 06:25:12