0

我有一个PHP页面在表中显示来自MYSQL数据库的记录。我希望能够通过单击单元格来编辑表格单元格中的记录。我描绘的过程是这样的:

1)onclick()表单元格触发器上的事件ajaxfunction()
2)ajaxfunction()将单元格数据发送到查询数据库并显示选项下拉列表的 php 页面。
3) 用户从下拉列表中选择选项
4)onchange()事件将表单提交到数据库
5) 刷新表格单元格或页面以显示当前表格单元格数据。(目前不在我现有的代码中)

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

4

1 回答 1

0

你可以实现一些框架,比如cakephpsymphony,这个框架可以帮助你在学习这门语言和良好实践的过程中。

于 2013-04-18T06:26:59.033 回答