我有一个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
,所以在这里我可能会偏离目标。任何帮助是极大的赞赏。