これがどのように行われるかを説明しようとしているスニペットをいくつか見ましたが、コードを統合するのに苦労しています。私のコードと以前の質問からわかるように、私はAJAXを初めて使用しますが、完全にやりがいがあります。
基本的に、私は内部のジョブ管理と問題追跡のための小さなチケットシステムを作成しているところです。
これまでのところ、ユーザーを選択し、AJAXを使用してユーザーアセットがMySQLから返されるドロップダウンフォームがあります。次に、件名の見出しにチェックボックスが表示されます。(一部のユーザーが複数のアセットを持っている可能性があることに気付いたため、これはアセットに移動します。)
私が理解する必要があるのは、チケットが送信されたときにアセットが記録されるように、AJAX結果内で選択されたアセットを元のフォームに戻す方法です。
以下のすべてのコードは現在サニタイズされておらず、適切にクリーンアップする必要があります。
これは、元のページのAJAXコードとフォームです。
<h3>Assign User</h3>
<script type="text/javascript">
function showUser(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","./includes/submit-ticket-ajax-1.php?q="+str,true);
xmlhttp.send();
}
</script>
<select style="width:217px; height:20px !important;" name="company_staff_select" onchange="showUser(this.value)">
<option value=""></option>';
$o = "SELECT * FROM company_staff WHERE company_id = " . $company_id . " ORDER BY id DESC";
$rs = mysql_query($o);
$nr = mysql_num_rows($rs);
for ($i=0; $i<$nr; $i++) {
$r = mysql_fetch_array($rs);
$staff_id = $r['id'];
echo '<option id="person" name="person" value="' . $staff_id . '">' . $r['firstname'] . ' ' . $r['lastname'] . '</option>';
}
echo '
</select>
<br />
<div id="txtHint"><b>Person info will be listed here.</b></div>
これは、AJAXによって呼び出されるページのコードです。
$q=$_GET["q"];
$sql="SELECT * FROM company_staff WHERE id = '$q'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$users_computer = $row['computer_id'];
$users_sim = $row['sim_id'];
$users_mobile = $row['mobile_id'];
$sql2="SELECT * FROM company_computers WHERE `id` = '$users_computer'";
$result2 = mysql_query($sql2);
$row2 = mysql_fetch_array($result2);
$sql3="SELECT * FROM company_sims WHERE id = '$users_sim'";
$result3 = mysql_query($sql3);
$row3 = mysql_fetch_array($result3);
$sql4="SELECT * FROM company_mobiles WHERE id = '$users_mobile'";
$result4 = mysql_query($sql4);
$row4 = mysql_fetch_array($result4);
echo '<br /><table border="1">
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Email<input type="checkbox" name="email" value="' . $row['email'] . '" /></th>
<th>Computer Name<input type="checkbox" name="comp" value="' . $row2['id'] . '" /></th>
<th>Company Phone Number<input type="checkbox" name="sim" value="' . $row3['id'] . '" /></th>
<th>Company Mobile<input type="checkbox" name="mobile" value="' . $row['id'] . '" /></th>
</tr>';
echo '<tr>
<td>' . $row['firstname'] . '</td>
<td>' . $row['lastname'] . '</td>
<td>' . $row['email'] . '</td>
<td>' . $row2['computer_name'] . '</td>
<td>' . $row3['phone_number'] . '</td>
<td>' . $row4['make'] . ' ' . $row4['model'] . '</td>
</tr>
<tr>
<b>Please select the device this ticket is related to if any.</b>
</tr>
';
echo '</table>';
?>
アドバイスをいただければ幸いです。細かく分類すればするほど、感謝の気持ちが高まります。
敬具、
n00bstacker