2016-04-27 7 views
0

Я хочу создать угловое приложение, которое может сохранять значения переключателя в базе данных в каждом событии click. В моем предыдущем приложении я использовал php ajax для его создания и работы. Я использую рамки Codeigniter. Вот код:Как сохранить значение переключателя при каждом событии click в angularjs?

PHP и HTML код:

<form name="form" class="form" method="post" enctype="multipart/form-data" action="<?php echo base_url();?>mahasiswa/konfirmasi"> 
    <?php 
    $no=1; 
    foreach($hasil->result() as $h){ 
     foreach($co->result() as $c){ 
      $idrecord = $c->id_record; 
      $jwb = $c->jwb; 
     } 
    ?> 
<input type="radio" name="jawab<?php echo $h->id_soal;?>" value="A" <?php if($h->jwb=='A'){echo 'checked';}?> onClick="simjwb(<?php echo $h->id_record;?>,<?php echo $h->id_soal;?>,<?php echo $no;?>)"/>a.&nbsp;</div><?php echo $h->a;?> 
<input type="radio" name="jawab<?php echo $h->id_soal;?>" value="B" <?php if($h->jwb=='B'){echo 'checked';}?> onClick="simjwb(<?php echo $h->id_record;?>,<?php echo $h->id_soal;?>,<?php echo $no;?>)"/>b.&nbsp;</div><?php echo $h->b;?> 
<input type="radio" name="jawab<?php echo $h->id_soal;?>" value="C" <?php if($h->jwb=='C'){echo 'checked';}?> onClick="simjwb(<?php echo $h->id_record;?>,<?php echo $h->id_soal;?>,<?php echo $no;?>)"/>c.&nbsp;</div><?php echo $h->c;?> 
<?php 
$no++; 
?> 
<input type="hidden" name="id_sesi" id="idse" value="<?php echo $h->id_sesi;?>"> 
<?php 
} 
?> 
</form> 

код Javascript:

function simjwb(co,so,no){ 
//alert("gagal koneksi"); 
var se = document.getElementById("idse").value; 
var jw = $("input:radio[name=jawab"+so+"]:checked").val(); 
//$.post('<?php echo site_url("mahasiswa/uprec/");?>',{ id_record: co, id_soal: so, id_sesi: se, jwb: jw }); 
    $.ajax({ 
     type:"POST", 
     data: { id_record: co, id_soal: so, id_sesi: se, jwb: jw }, 
     url: "<?php echo site_url("mahasiswa/uprec/");?>" 
    }); 
    $('#no'+no).attr('class','panel panel-success'); 
    $('#s'+no).attr('class','sdh'); 
} 

Как реализовать это в angularjs? Что я должен использовать ng-click или ng-model или что-то еще? И как разобрать выражение в функции angularjs, следуя в моей функции ajax onClick="simjwb(<?php echo $h->id_record;?>,<?php echo $h->id_soal;?>,<?php echo $no;?>)", поэтому я могу получить id_record, id_soal, $no, чтобы опубликовать в моей функции simjwb(expressions)?

Извините за длинный код и мой плохой английский. Благодарим за продвижение.

ответ

0

Вам нужно будет использовать как ng-click, так и ng-model.

<label> 
    <input type="radio" ng-model="color.name" value="red" ng-click="saveValue()"> 
    Red 
    </label><br/> 
    <label> 
    <input type="radio" ng-model="color.name" value="green" ng-click="saveValue()"> 
    Green 
    </label><br/> 
    <label> 
    <input type="radio" ng-model="color.name" value="blue" ng-click="saveValue()"> 
    Blue 
    </label> 

в контроллере можно определить saveValue функцию, что-то вроде ниже

$scope.saveValue=function(){ 
    $http.post("/test/save",$scope.color); 
} 

Лучшая практика заключается в создании службы, которая будет заботиться о делает HTTP звонки и впрыснуть эту услугу в контроллере

+0

Кстати, как получить мой id_record, id_soal, $ no from view (form), чтобы передать контроллер, чтобы они могли быть отправлены (вставить) в базу данных? – Agung

+0

вы можете назначить все объекту области видимости, например $ scope.formData.idRecord и т. Д. Вместе с значком переключателя, а затем отправить весь объект в конечную точку отдыха – Maverick

+0

как назначить мои 3 выражения в одном переключателе? Извините, я все еще новичок в angularjs ... – Agung

Смежные вопросы