我有一个PHP
页面,显示表格中MYSQL
数据库的记录。我希望能够通过单击单元格来编辑表格单元格中的记录。我想象的过程如下:
1)onclick()
事件触发ajaxfunction()
2)ajaxfunction()
将单元格数据发送到php页面,该页面查询数据库并显示选项的下拉列表
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
,所以我可能会在这方面脱颖而出。非常感谢任何帮助。