У меня есть проблема, когда после нажатия модального поля вторые данные будут скопированы из первых данных, которые я получаю, как эти цифры:
Как видите, у меня есть две разные данные, после того как я щелкну одну из них для редактирования. затем это происходит
Существует проблема, поскольку вы можете видеть, что данные редактирования дублируются на вторых данных. Есть 2 данных, которые имеют одинаковое значение.
Так как я могу предотвратить это?
Моя правка - Ajax
//edit
$('#showdata').on('click', '.item-edit', function(){
var id = $(this).attr('data');
$('#myModal').modal('show');
$('#myModal').find('.modal-title').text('Edit Question');
$('#myForm').attr('action', '<?php echo base_url() ?>teachers/updateQuestion');
$.ajax({
type: 'ajax',
method: 'get',
url: '<?php echo base_url() ?>teachers/editQuestion',
data: {id: id},
async: false,
dataType: 'json',
success: function(data){
$('input[name=question]').val(data.question);
$('input[name=choice1]').val(data.choice1);
$('input[name=choice2]').val(data.choice2);
$('input[name=choice3]').val(data.choice3);
$('input[name=answer]').val(data.answer);
},
error: function(){
alert('Could not Edit Data');
}
});
});
Контроллер
public function editQuestion(){
$result = $this->teacher_model->editQuestion();
echo json_encode($result);
}
Модель
public function editQuestion(){
$id = $this->input->get('id');
$this->db->where('id', $id);
$query = $this->db->get('quiz');
if($query->num_rows() > 0){
return $query->row();
}else{
return false;
}
}
HTML
<!-- Modal -->
<div class="modal fade-scale" id="myModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
<div class="card">
<div class="card-header">
<h4>Create a Multiple Choice Question</h4>
</div>
<div class="card-body">
<form>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">Question</span>
</div>
<input type="text" name="question" id="question" class="form-control" required />
<p id="err_field"></p>
</div>
<hr>
<div class="input-group input-group-sm mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="inputGroup-sizing-sm">Choice 1</span>
</div>
<input type="text" class="form-control" name="choice1" id="choice1" aria-describedby="inputGroup-sizing-sm" required />
</div>
<div class="input-group input-group-sm mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="inputGroup-sizing-sm">Choice 2</span>
</div>
<input type="text" class="form-control" name="choice2" id="choice2" aria-describedby="inputGroup-sizing-sm" required />
</div>
<div class="input-group input-group-sm mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="inputGroup-sizing-sm">Choice 3</span>
</div>
<input type="text" class="form-control" name="choice3" id="choice3" aria-describedby="inputGroup-sizing-sm" required />
</div>
<div class="input-group input-group-sm mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="inputGroup-sizing-sm">Answer Choice</span>
</div>
<input type="text" class="form-control" name="answer" id="answer" aria-describedby="inputGroup-sizing-sm" required />
</div>
<input type="button" id="btnSave" class="btn btn-block btn-info" value="Submit" />
</form>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" id="btnClose" class="btn btn-default">Close</button>
<button type="button" id="btnSave" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div>
Получено для отображения данных с использованием ajax
for(i=0; i<data.length; i++){
html +='<div class="card">'+
'<div class="card-header" style="background-color:#A9CEFA;">'+
'<h4>Created Question no.'+ n++ +'</h4>'+
'</div>'+
'<div class="card-body">'+
'<form>'+
'<input type="hidden" name="txtId" value="0">'+
'<div class="input-group">'+
'<div class="input-group-prepend">'+
'<span class="input-group-text">Question</span>'+
'</div>'+
'<input type="text" name="question" value="'+data[i].question+'" class="form-control" required>'+
'</div>'+
'<hr>';
if(!data[i].choice1==0){
html += '<div class="input-group input-group-sm mb-3">'+
'<div class="input-group-prepend">'+
'<span class="input-group-text" id="inputGroup-sizing-sm">Choice 1</span>'+
'</div>'+
'<input type="text" class="form-control" value="'+data[i].choice1+'" name="choice1" aria-describedby="inputGroup-sizing-sm" required>'+
'</div>';
}
if(!data[i].choice2==0){
html += '<div class="input-group input-group-sm mb-3">'+
'<div class="input-group-prepend">'+
'<span class="input-group-text" id="inputGroup-sizing-sm">Choice 2</span>'+
'</div>'+
'<input type="text" class="form-control" name="choice2" value="'+data[i].choice2+'" aria-describedby="inputGroup-sizing-sm" required>'+
'</div>';
}
if(!data[i].choice3==0){
html += '<div class="input-group input-group-sm mb-3">'+
'<div class="input-group-prepend">'+
'<span class="input-group-text" id="inputGroup-sizing-sm">Choice 3</span>'+
'</div>'+
'<input type="text" class="form-control" name="choice3" value="'+data[i].choice3+'" aria-describedby="inputGroup-sizing-sm" required>'+
'</div>';
}
html += '<div class="input-group input-group-sm mb-3">'+
'<div class="input-group-prepend">'+
'<span class="input-group-text" id="inputGroup-sizing-sm">Answer Choice</span>'+
'</div>'+
'<input type="text" class="form-control" name="answer" value="'+data[i].answer+'" aria-describedby="inputGroup-sizing-sm" required>'+
'</div>'+
'<a href="javascript:;" class="btn btn-info item-edit" data="'+data[i].id+'">Edit </a> '+
'<a href="javascript:;" class="btn btn-danger item-delete" data="'+data[i].id+'"> Delete</a>'+
'</form>'+
'</div>'+
'</div><hr>';
}
$('#showdata').html(html);