ÀüÅëÀûÀ¸·Î À¥ ÇÁ·Î±×·¥¹ÖÀº »ç¿ëÀÚ ÀԷ¿¡ ÀÇÁ¸ÇÑ step by step ¾îÇø®ÄÉÀ̼ǿ¡ ¸Å¿ì ÀûÇÕÇÑ ¹æ½ÄÀÌ´Ù. ±× ¸¸Å ÀÌÀü ÆäÀÌÁö¿Í ÀÌÈÄ ÆäÀÌÁö »çÀÌ¿¡¼ÀÇ »ç¿ëÀÚ ÀÔ·ÂÀÌ Áß¿äÇÏ´Ù. ¾î¶»°Ô º¸¸é ÀÌ·± step by step ¹æ½ÄÀÇ ÆäÀÌÁö ±¸¼ºÀº À¥ÀÌ ¾Æ´Ñ ´Ù¸¥ ÇÁ·Î±×·¥°ú ºñ±³ÇغÃÀ»¶§ ¾î¶»°Ô º¸¸é ´Ü¼øÇÏ°í ¸ÛÃ»ÇØº¸À̱â±îÁö ÇÑ´Ù. AJAX °¡ µµÀÔµÇ¸é¼ ÀüÅëÀûÀÎ À¥ ÇÁ·Î±×·¥¿¡ Á¶±Ý¾¿ ¼öÁ¤ÀÌ °¡ÇØÁö°í Àִµ¥ À̹øÀå¿¡¼´Â Áö±Ý±îÁö ¹è¿î ³»¿ë¸¸À» Åä´ë·Î µÎ°³ÀÇ select box °ªÀÌ ÆÄ¶ó¹ÌÅͰ¡ µÇ¾î ¸ÅĪµÇ´Â °á°ú¸¦ µ¿ÀûÀ¸·Î º¸¿©ÁÖ´Â ¿¹Á¦¸¦ ¼Ò°³Çϱâ·Î ÇÑ´Ù.
»ç½Ç AJAX ¸¦ »ç¿ëÇÏÁö ¾Ê´õ¶óµµ ÀÌ·± È¿°ú´Â ÀÌÀü¿¡µµ °¡´ÉÇß´Ù. select box ÀÇ value °ª°ú ¸Åΰá°ú¸¦ ÇѲ¨¹ø¿¡ ¹Þ¾Æ hidden ¿ä¼Ò³ª ȤÀº ´Ù¸¥ ¹æ½ÄÀ¸·Î À¥ÆäÀÌÁö¿¡ ÀúÀåÇß´Ù°¡ »ç¿ëÀÚÀÇ ÀԷ¿¡ µû¶ó ±× ºÎºÐ¸¸ Ãë»ç¼±ÅÃÇØ¼ º¸¿©ÁÖ¸é µÈ´Ù. ÇÏÁö¸¸ À̰æ¿ì µ¥ÀÌŸ°¡ ¸¹¾ÆÁö¸é ÆäÀÌÁö ·Îµù½Ã°£ÀÌ Áö¿¬µÇ°í »ç¿ëÀÚ°¡ ±ÞÁõÇÒ¼ö·Ï ¼¹ö¿¡ ¹«¸®°¡ °¥ °ÍÀÌ´Ù. ±×¸®°í ÀϹÝÀûÀ¸·Î Ŭ¶óÀÌ¾ðÆ® º¸´Ù´Â ¼¹ö ¸Ó½ÅÀÇ ¼º´ÉÀÌ ¿ùµîÇϹǷΠ¸¹Àº µ¥ÀÌÅ͸¦ ¼¹ö·ÎºÎÅÍ ÇѲ¨¹ø¿¡ ¹Þ¾Æ¼ ºê¶ó¿ìÀú¿¡¼ ½ºÅ©¸³ÆÃ¾ð¾î·Î µ¥ÀÌÅ͸¦ ºÐ¼®Çؼ º¸¿©ÁÖ´Â °ÍÀº ¿ª½Ã ºñÈ¿À²ÀûÀÌ´Ù.
µû¶ó¼ À̹ø¿¡´Â »ç¿ëÀÚÀÇ ÀÔ·ÂÀÌ ÀÖÀ»¶§¸¶´Ù ºñµ¿±â ¹æ½ÄÀ¸·Î ¼¹ö¿¡ Á¢¼ÓÇØ ±× °á°ú¸¦ ¹Ù·Î ¾Ë ¼ö ÀÖ´Â ¿¹Á¦¸¦ »ìÆìº¸ÀÚ. AJAX ÀÇ °¡Àå Å« ÀåÁ¡ ÁßÀÇ Çϳª´Â ¿ª½Ã Àüü ÆäÀÌÁö ·ÎµùÀÌ ÇÊ¿ä ¾ø´Ù´Â °ÍÀÌ´Ù. ¹°·Ð Àüü ÆäÀÌÁö ·ÎµùÀÌ ÇÊ¿äÇÑ °æ¿ìµµ ÀÖÁö¸¸, ±×·¸Áö ¾ÊÀº °æ¿ì¿¡µµ Àüü ÆäÀÌÁö°¡ ·ÎµùµÈ´Ù´Â °ÍÀº °á±¹ ¼¹ö¿Í Ŭ¶óÀÌ¾ðÆ® ¸ðµÎ ºÒÇÊ¿äÇÑ ÀÛ¾÷À» °è¼Ó ÇØ¾ß µÈ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¼¹öÂÊ ºñÁö´Ï½º·ÎÁ÷ ÇÁ·Î±×·¥À» ÇØº» °³¹ßÀÚ´Â Àß ¾Ë °ÍÀÌ´Ù. ¼¹öÀÇ ¼º´ÉÀ» ÆÇ´ÜÇÏ´Â ÁöÇ¥Áß¿¡ TPS ¶ó°í ÀÖ´Ù. ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÏ¸é¼ ±¸ÇöÀÌ ³¡³ª¸é Àüü ¼º´É ¹× ·Îµå Å×½ºÆ®¸¦ ÁøÇàÇϴµ¥ 1 TPS ¿Ã¸®´Â °ÍÀÌ ¾ó¸¶³ª ¾î·Á¿îÁö ¾È ÇØº» »ç¶÷Àº ¸ð¸¦ °ÍÀÌ´Ù. ÀÚ¿øÀ» Á»´õ È¿À²ÀûÀ¸·Î »ç¿ëÇØº¸ÀÚ. ±×¸®°í Á» ´õ ½º¸¶Æ®ÇÏ°Ô À¥±â¼úÀ» Àû¿ëÇÏ°Ô º¸ÀÚ.
[»ùÇñ¸Çöº¸±â]
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Dynamically Filling Lists</title>
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function refreshModelList() {
var make = document.getElementById("make").value;
var modelYear = document.getElementById("modelYear").value;
if(make == "" || modelYear == "") {
clearModelsList();
return;
}
var url = "example10.php?"
+ createQueryString(make, modelYear) + "&ts=" + new Date().getTime();
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
function createQueryString(make, modelYear) {
var queryString = "make=" + make + "&modelYear=" + modelYear;
return queryString;
}
function handleStateChange() {
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
updateModelsList();
}
}
}
function updateModelsList() {
clearModelsList();
var models = document.getElementById("models");
var results = xmlHttp.responseXML.getElementsByTagName("model");
var option = null;
for(var i = 0; i < results.length; i++) {
option = document.createElement("option");
option.appendChild(document.createTextNode(results[i].firstChild.nodeValue));
models.appendChild(option);
}
}
function clearModelsList() {
var models = document.getElementById("models");
while(models.childNodes.length > 0) {
models.removeChild(models.childNodes[0]);
}
}
</script>
</head>
<body>
<h1>Select Model Year and Make</h1>
<form action="#">
<span style="font-weight:bold;">Model Year:</span>
<select id="modelYear" onchange="refreshModelList();">
<option value="">Select One</option>
<option value="2006">2006</option>
<option value="1995">1995</option>
<option value="1985">1985</option>
<option value="1970">1970</option>
</select>
<br/><br/>
<span style="font-weight:bold;">Make:</span>
<select id="make" onchange="refreshModelList();">
<option value="">Select One</option>
<option value="Chevrolet">Chevrolet</option>
<option value="Dodge">Dodge</option>
<option value="Pontiac">Pontiac</option>
</select>
<br/><br/>
<span style="font-weight:bold;">Models:</span>
<br/>
<select id="models" size="6" style="width:300px;">
</select>
</form>
</body>
</html>
<example10.html ÀÇ Àüü ¼Ò½º>
<?
class xmlClass{
var $items = array();
function outputXml(){
header("Content-type: text/xml");
printf("<?xml version=\"1.0\" encoding=\"%s\" ?>\n","EUC-KR");
print("<rss version=\"2.0\">\n");
$this->printChannel();
print("</rss>\n");
}
function printChannel(){
foreach($this->items as $item){
if($item["modelYear"] == $this->modelYear){
if($item["models"] == $this->make){
foreach ($item as $name => $value){
$value = htmlspecialchars($value);
printf("<%s>%s</%s>\n",$name,$value,$name);
}
}
}
}
}
function addItem($item){
array_push($this->items,$item);
}
}
$myxml = new xmlClass();
$myxml->make = $make;
$myxml->modelYear = $modelYear;
$myxml->addItem(array("modelYear"=> "2006","models"=> "Dodge","model"=> "Charger"));
$myxml->addItem(array("modelYear"=> "2006","models"=> "Dodge","model"=> "Magnum"));
$myxml->addItem(array("modelYear"=> "2006","models"=> "Dodge","model"=> "Ram"));
$myxml->addItem(array("modelYear"=> "2006","models"=> "Dodge","model"=> "Viper"));
$myxml->addItem(array("modelYear"=> "1995","models"=> "Dodge","model"=> "Avenger"));
$myxml->addItem(array("modelYear"=> "2006","models"=> "Chevrolet","model"=> "Colorado"));
$myxml->addItem(array("modelYear"=> "2006","models"=> "Chevrolet","model"=> "Corvette"));
$myxml->addItem(array("modelYear"=> "2006","models"=> "Chevrolet","model"=> "Equinox"));
$myxml->addItem(array("modelYear"=> "2006","models"=> "Chevrolet","model"=> "Monte Carlo"));
$myxml->addItem(array("modelYear"=> "1995","models"=> "Chevrolet","model"=> "Beretta"));
$myxml->addItem(array("modelYear"=> "2006","models"=> "Pontiac","model"=> "G6"));
$myxml->addItem(array("modelYear"=> "2006","models"=> "Pontiac","model"=> "Grand Prix"));
$myxml->addItem(array("modelYear"=> "2006","models"=> "Pontiac","model"=> "Solstice"));
$myxml->addItem(array("modelYear"=> "2006","models"=> "Pontiac","model"=> "Vibe"));
$myxml->addItem(array("modelYear"=> "1995","models"=> "Pontiac","model"=> "Bonneville"));
$myxml->outputXml();
?>
<example10.php ÀÇ Àüü ¼Ò½º>
»ç½Ç À§ »ùÇÿ¹Á¦ ¶ÇÇÑ ¼ÖÁ÷È÷ Ãß°¡ÀûÀÎ ¼³¸íÀº ÇÏÁö ¾Ê°Ú´Ù. ¸¸ÀÏ ÀÚ¹Ù¸¦ ¸ð¸£´Â »ç¶÷À̶ó¸é ¼¹öÂÊ ÇÁ·Î±×·¥ÀÇ ÄÚµå ÇϳªÇϳª¸¦ ÀÌÇØÇÏ·Á°í ÇÒ ÇÊ¿ä´Â ¾øÀ» µí ½Í´Ù. ÇÙ½ÉÀº ajax ÀÌ´Ù. À̹ø ¿¹Á¦ÀÇ ¼¹ö ÇÁ·Î±×·¥ÀÌ ±æ¾îÁö°Ô µÈ ÀÌÀ¯´Â, »ç½Ç ºñÁö´Ï½º ·ÎÁ÷¿¡¼´Â DB µ¥ÀÌÅ͸¦ ºÐ¼®ÇÏ¿© ¸ÅĪµÇ´Â °á°ú¸¦ ºê¶ó¿ìÀú·Î º¸³»Áà¾ß ÇÏÁö¸¸ ±×·¸°Ô µÇ¸é ¼¹ö ÇÁ·Î±×·¥ÀÌ ´õ º¹ÀâÇØÁö¹Ç·Î »ùÇÃÀÇ ´Ü¼øÈ¸¦ À§ÇØ Á» ¹«½ÄÇÏ°Ô ÀÛ¼ºÇÏ¿´´Ù.
[»ùÇñ¸Çöº¸±â]