我已經看到一些片段試圖解釋這是如何完成的,但我正在努力整合代碼。正如你將從我的代碼和以前的問題中看到的,我是AJAX新手,但發現它完全有價值。如何將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
你願意使用JavaScript庫嗎?使用像jquery,mootools或dojo這樣的庫可以更輕鬆地完成。 –
你在嘗試什麼錯誤處理,調試?你是否記錄任何東西來追蹤你的代碼的執行? – thescientist
@Kyokasuigetsu - 謝謝 - 當時我只是在已經存在的平臺上添加了一個工具,並且不想使用單獨的PHP步驟,並想嘗試學習一些關於AJAX的知識。長期計劃是將整個平臺重新設計成單獨的主題代碼庫,並使用apache項目(名字使我心智)在他們之間進行交流。所以對任何不重新設計的東西都是開放的,因爲已經有人比我更有天賦了。我只是看到了一個嘗試和提升我的技能的藉口。 – n00bstacker