다음 컨트롤러와 뷰가 있습니다. 나는 codeigniter에서 jquery를 배우려고 노력하고있다.codeigniter에서 jquery를 코딩하는 방법
코드가 작동하지 않습니다. 그래서 나는 누군가 내가 잘못하고있는 것을 알아 내고 나를 바로 잡기를 바라고있다.
미리 감사드립니다.
class PhpJqueryBook extends Controller
{
function __construct()
{
parent::Controller(); }
public function index()
{
... }
function dynamic_select_boxes(){
$this->load->view('dynamic_select_boxes');
}
function get_cities(){
switch(@$_POST['country']){
case 'ie': // { ireland
$cities=array('Cork', 'Dublin', 'Galway', 'Limerick',
'Waterford');
break;
// }
case 'uk': // { United Kingdom
$cities=array('Bath', 'Birmingham', 'Bradford',
'Brighton & Hove', 'Bristol',
'Cambridge', 'Canterbury', 'Carlisle',
'Chester', 'Chichester', 'Coventry',
'Derby', 'Durham', 'Ely', 'Exeter',
'Gloucester', 'Hereford', 'Kingston upon Hull',
/* and on and on! */
'Newport', 'St David\'s', 'Swansea');
break;
// }
default: // { else
$cities=false;
// }
}
if(!$cities)echo 'please choose a country first';
else echo '<select name="city"><option>'.join('</option> <option>',$cities).'</select>';
}
}
보기/dynamic_select_boxes.php
<?php $this->load->view('inc/header')?>
<form>
<table>
<tr><th>Country</th><td>
<select name="country" id="country">
<option value=""> -- please choose -- </option>
<option value="ie">Ireland</option>
<option value="uk">Great Britain</option>
</select>
</tr>
<tr>
<th>Cities</th>
<td id="cities">please choose a country first</td>
</tr>
</table>
<?php $this->load->view('inc/footer')?>
그리고 이것은 다음과 같은 HTML을 생성합니다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base href="http://127.0.0.1/ci_jquery/">
</head>
<body>
<form>
<table>
<tr><th>Country</th><td>
<select name="country" id="country">
<option value=""> -- please choose -- </option>
<option value="ie">Ireland</option>
<option value="uk">Great Britain</option>
</select>
</tr>
<tr>
<th>Cities</th>
<td id="cities">please choose a country first</td>
</tr>
</table>
<script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(setup_country_change);
function setup_country_change(){
$('#country').change(update_cities);
}
function update_cities(){
var country=$('#country').attr('value');
$.get('phpjquerybook/get_cities/'+country, show_cities);
}
function show_cities(res){
$('#cities').html(res);
}
</script>
</body>
</html>
이것은 여러 가지 이유 때문에 잘못되었습니다. 1. 내 대답을 참조하십시오. 2. GET 매개 변수는 CI 입력 클래스로 필터링됩니다 (http://codeigniter.com/user_guide/libraries/input.html 참조). – Residuum