jQuery - codeigniter. Невозможно удалить второй елемент на странице
Здравствуйте,
На страницу загружаются елеменьы с БД, которые нужно выборочно удалять. После удаления любого елемента, <div> обновляется, но дальше нет возможности удалять, так как селект не срабатывает. это упрощенный пример. На страницу "test" загружаются id с БД, формируются кнопки с value='id' (значение id - с БД). После чего кликаю на кнопку, значение id передается в функцию test_delete($id), удаляется запись с БД и потом формируется html которые передается назад в вид test и затирает старые данные. После этого jquery селект не срабатывает. Что надо исправить чтоб можно было удалять любые даные на странице ? Контролер: function test_contr(){ $this->load->model('admin/Product_crud'); $data['query']=$this->Product_crud->test_model_select_data(); $this->load->view('admin/test',$data); } function test_delete($id){ $output = NULL; //var_dump($id); $this->load->model('admin/Product_crud'); $this->Product_crud->test_delete($id); $data['query']=$this->Product_crud->test_model_select_data(); foreach($data['query'] as $row){ $output .= $row->id."<input class='del_picture' type='button' value='".$row->id."' name='id'>"; } // echo $output; echo json_encode($output); //var_dump($data); //$this->output->enable_profiler(TRUE); } Модель: выкладывать нет необходимости Вид: <!DOCTYPE html> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <script src="/script/jquery-1.9.1.min.js"></script> </head> <body> <div class="result_table"> <?php foreach ($query as $row){ echo $row->id."<input class='del_picture' type='button' value='".$row->id."' name='id'>"; } ?> </div> <script> $(".del_picture").on("click", function(){ var id = $(this).attr("value"); var myurl = '<?php echo base_url()."admin/main/test_delete/"?>'; var url = myurl + id; $.ajax({ url: url, type:'GET', dataType: 'json', success: function(update_html){ $(".result_table").html(update_html); } }); }); </script> </body> </html> |
Цитата:
$(".result_table").on("click", ".del_picture", function(){ |
Вы ше body не сработало, все оставил на своих местах, только скрипт обернул как Вы указали и даные начали удалятся.
Вот окончательный код: $(".result_table").on("click", ".del_picture", function(){ $(".del_picture").on("click", function(){ /* alert("hi"); */ var id = $(this).attr("value"); var myurl = '<?php echo base_url()."admin/main/test_delete/"?>'; var url = myurl + id; $.ajax({ url: url, type:'GET', dataType: 'json', success: function(update_html){ $(".result_table").html(update_html); } }); }); }); Огромное спасибо :) . Еще один вопрос по производительности. Задержка 200-350 мс, следующая запись так сразу не удаяляется. По умолчанию ж стоит асинхронный запрос... |
m175,
должно работать без строк 2 и 19 -- а success естественно сработает когда ответит сервер. |
удалили строки задержка исчезла.
:thanks: |
Часовой пояс GMT +3, время: 23:55. |