2009-12-24 9 views
1

В видовом страницы:Ajax с JQuery не работает

<script languge="javascript" type="text/javascript"> 
    $(document).ready(function() { 
    $('#delete').click(function(e) {; 
     e.preventDefault(); 
     var parent = $(this).parent(); 
     mainParent=parent.parent(); 

     $.ajax({ 
      type: 'post', 
      url: "<?= site_url('controller_Test/fnDelete') ?>", 
      data: "id="+$(this).prev().text(), 

      success: function() { 
       mainParent.slideUp(0,function() { 
        mainParent.remove(); 
       }); 
      } 

     }); 
     return false; 
    }); 
}); 

Контроллер --controller_Test

function fnDelete(){ 
    $data['delete_me']=$_POST['id']; 

    if (!empty($data['delete_me'])){ 
     $this->load->model('data_Model', '', TRUE); 
     $this->properties->deleteRec($data['delete_me']); 
     $this->output->set_output('works'); 
    } else { 
     $this->output->set_output('dontwork'); 

    } 
} 

В этом fnDelete следует удалить строку в базе данных. Но его не удалять. но его удаление этой строки из представления. Я использую codeigniter. Что-то не так с моим кодом.?

+0

я не знаю, но с запятой в строке 3 просмотра страницы, безусловно, не принадлежит там. –

+0

Отправьте свой HTML-код, пожалуйста. – Sampson

ответ

2

Во-первых, у вас есть странная точка с запятой:

$('#delete').click(function(e) {; 

Удалить, что с конца. Затем, попробовать свои данные, как это вместо:

data: {"id":$(this).prev().text()} 

Вы также можете обработать ответ в течение обратного вызова, и эхо из результатов, так что вы знаете ли удалось РНР, или не удалось.

success: function(results) { 
    if (results == "success") { 
    /* remove associated elements */ 
    } else { 
    alert("An error occurred."); 
    } 
} 
+0

Я пробовал, пока он не работает. Я не думаю, что он выполняет функцию, указанную в URL-адресе. – ASD

+0

Вам нужно обработать результаты в функции успеха, чтобы вы знали, что возвращается. – Sampson

+0

Большое спасибо. Это сработало. Я обработал результаты и нашел проблему с моим запросом. Еще раз спасибо – ASD

0

Для того, чтобы испытать вас функции, которые вы можете использовать скрипача или вы можете также добавить эхо в контроллер и предупреждение в вас успех функции. Например:

$(document).ready(function() { 
    $('#delete').click(function(e) {;  
     e.preventDefault(); 
     $.ajax({ 
      dataType: 'text', 
      success: function(responseText) { 
       alert(responseText); 
      } 

     }); 
     return false; 
    }); 
}); 

контроллер --controller_Test

function fnDelete(){ 
    $data['delete_me']=$_POST['id']; 
    echo 'deleting ' . $data['delete_me'] 
    // ... 
}