如何在 angularjs 中保存每个点击事件的单选按钮值


How to save radio button value every on click event in angularjs?

我想创建角度应用程序,该应用程序可以在每个单击事件中将单选按钮值保存到数据库中。在我以前的应用程序中,我使用 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.&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-clickng-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 调用并将该服务注入控制器中