したがって、国を選択すると州が与えられ、州が都市を与える連鎖リンクでフォームを作成したいと思います。私はdbとテーブルをセットアップして、私は自分のajaxコードを書いています。国のリストはうまくいきますが、国を選択すると、ajaxは選択されたcountry_id
に状態フィールドを取り込ませません。逆もまた同様です。 Imはcodeigniter、plzに似たmvcフレームワークを使用しています。私は助けが必要です。AJAX、PHP&MVCで連鎖選択を使用する
これは、ビューの上にある私のAJAX呼び出しとhtmlです:
:これは私のモデルあるfunction index()
{
$this->view->data['country']=$this->model->getcountries();
$this->view->data['total_countries']=$this->model->gettotalcountries();
if (isset($_POST['country_id'])) {
$country_id = $_POST['country_id'];
$this->view->data['info1']=$this->model->getdata1($country_id);
$this->view->data['total_info1']=$this->model->gettotaldata1($country_id);
}
$this->view->render('patient_appointment/index', $noinclude=false, 2);
}
function getstate()
{
if(isset($_POST["country_id"]) && !empty($_POST["country_id"])){
$country_id=$_POST['$country_id'];
$this->view->data['total_states']=$this->model->gettotalstates($country_id);
$this->view->data['state']=$this->model->getstates($country_id);
}
}
:これは私のコントローラある
<script type="text/javascript">
$(document).ready(function(){
$('#country').on('change',function(){
var countryID = $(this).val();
if(countryID){
$.ajax({
type:'POST',
url:'<?php echo URL?>patient_appointment/getstate',
data:'country_id='+countryID,
success:function(html){
$('#state').html(html);
$('#city').html('<option value="">Select state first</option>');
}
});
}else{
$('#state').html('<option value="">Select country first</option>');
$('#city').html('<option value="">Select state first</option>');
}
});
$('#state').on('change',function(){
var stateID = $(this).val();
if(stateID){
$.ajax({
type:'POST',
url:'<?php echo URL?>patient_appointment/getcity',
data:'state_id='+stateID,
success:function(html){
$('#city').html(html);
}
});
}else{
$('#city').html('<option value="">Select state first</option>');
}
});
});
</script>
<select name="country" id="country">
<option value="">Select Country</option>
<?php if ($total_countries > 0) { foreach ($country as $key => $value) { ?>
<option value="<?php echo $value['country_id'] ?>"><?php echo $value['country_name'] ?></option>
<?php }} else { echo "<option value=''>No data in database</option>"; } ?>
</select>
<select name="state" id="state">
<option value="">Select country first</option>
</select>
<select name="city" id="city">
<option value="">Select state first</option>
</select>
<div name="state" id="state"></div>
public function __construct()
{
parent::__construct();
}
public function getcountries()
{
$sth = $this->db->query("SELECT * FROM countries WHERE status = 1 ORDER BY country_name ASC");
$rowss=$sth->rows;
return $rowss;
}
public function gettotalcountries()
{
$sth = $this->db->query("SELECT * FROM countries WHERE status = 1 ORDER BY country_name ASC");
$rowss=$sth->num_rows;
return $rowss;
}
public function getstates($country_id)
{
$sth = $this->db->query("SELECT * FROM states WHERE country_id = '$country_id' AND status = 1 ORDER BY state_name ASC");
$rowss=$sth->rows;
return $rowss;
}
public function gettotalstates($country_id)
{
$sth = $this->db->query("SELECT * FROM states WHERE country_id = '$country_id' AND status = 1 ORDER BY state_name ASC");
$rowss=$sth->num_rows;
return $rowss;
}
どうしたらいいですか?
です'select'要素と' div')があります。 'id'はドキュメント内で一意でなければなりません。これは問題かもしれません。 – abhishekkannojia
'data:{country_id:countryID}、 ' – RiggsFolly
@abhishekkannojiaを試してみましたが、まだ回答がありません – Dahlia