コードイグナイター コントローラーで ajax 経由で値を送信する編集フォームを作成しました。更新されるフォームの値はシリアル化された関数を使用して渡されますvar curr_val = $("#edit_currency").serialize();
が、更新される値の ID はシリアル化メソッドに含まれておらず、JavaScript 関数に渡されるだけですvar curr_id = $("#curr_id").val();
。問題は、この 2 つの変数を正常に渡すことができないことです。私のコントローラー関数で受信されるajaxで。更新は発生しません。どうすればこれを行うことができますか? どうもありがとう。これが私のコードです
意見:
<?php
//echo form_open('/display/student_update');
foreach($curr_values as $row){
echo"<input type='hidden' name='curr_id' id='curr_id' value=".$row->id.">";
?>
<form method="post" action="" id="edit_currency">
<div class="row">
<div class="span4"><strong><?php echo $lbl_currency_name;?></strong> </div>
</div>
<div class="row">
<div class="span4"><strong><?php echo"<input type='text' name='currency[pretty_name]' id='pretty_name' value=".$row->pretty_name.">"; ?></strong> </div>
</div>
<div class="row">
<div class="span4"><strong><?php echo $lbl_currency_code; ?></strong> </div>
</div>
<div class="row">
<div class="span4"><strong><?php echo form_input($currency_code,$row->currency_code);?></strong> </div>
</div>
?>
<script type="text/javascript">
$(function(){
$("#currency_save").click(function(){
var curr_id = $("#curr_id").val();
var curr_val = $("#edit_currency").serialize();
alert(curr_id);
alert(curr_val);
$.ajax({
type: "POST",
url: "<?php echo base_url();?>currencies/update_currencies",
dataType:'json',
data: {'curr_values':curr_val,'curr_id':curr_id},
success: function(data)
{
if(data.notify=="Success"){
console.log(data.notify);
}
else{
console.log(data.notify);
}
}
});
$("html, body").animate({ scrollTop: 0 }, 600);
return false;
});
});
</script>
コントローラ:
function update_currencies(){
$curr_val=$this->input->post('curr_values');
$curr_id = $this->input->post('curr_id');
$query = $this->course_booking_model->update_currencies($curr_id,$curr_val);
if($query){
$notification = "Success";
}
else{
$notification = "Failed";
}
echo json_encode(array('notify'=>$notification));
}