データベースのPHP
レコードをテーブルに表示するページがあります。MYSQL
セルをクリックして、表のセル内のレコードを編集できるようにしたいと考えています。私が描くプロセスは次のようになります。
1)onclick()
テーブル セル トリガーのイベントajaxfunction()
2)ajaxfunction()
データベースにクエリを実行し、オプションのドロップダウン リストを表示する php ページにセル データを送信します。
3) ユーザーがドロップダウン リストからオプションを選択する
4)onchange()
イベントがフォームをデータベースに送信する
5) テーブル セルまたはページが更新され、現在のテーブル セル データが表示されます。(現在、既存のコードにはありません)
現在、2 つの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
私は今週使い始めたばかりなので、ここでマークから外れている可能性があります. どんな助けでも大歓迎です。