我想创建角度应用程序,该应用程序可以在每个单击事件中将单选按钮值保存到数据库中。在我以前的应用程序中,我使用 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 函数中的表达式,以便我可以在我的 simjwb(expressions)
函数中发布id_record, id_soal, $no
?
对不起,长代码和我的英语不好。感谢您的提前。
您必须同时使用 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 调用并将该服务注入控制器中