使用AJAX将PHP表单提交到MYSQL数据库

时间:2013-04-18 06:20:24

标签: php mysql ajax

我有一个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,所以我可能会在这方面脱颖而出。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以实施某些框架,例如cakephpsymphony,此框架可以帮助您学习此语言和良好实践。