我想创建一个角度应用程序,可以在每次点击事件中将单选按钮值保存到数据库中。在我之前的应用程序中,我使用php ajax来创建它并且运行良好。我使用Codeigniter框架。这是代码:
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. </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. </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. </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
或其他什么?以及如何解析我的ajax函数onClick="simjwb(<?php echo $h->id_record;?>,<?php echo $h->id_soal;?>,<?php echo $no;?>)"
中的angularjs函数中的表达式,以便我可以id_record, id_soal, $no
在simjwb(expressions)
函数中发布?
对不起,因为长代码和我的英文不好。谢谢你的进步。
答案 0 :(得分: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调用并在控制器中注入该服务