2011-01-28 3 views
0

사용자가 코스에서 학생을 추가/삭제할 수있는 작은 응용 프로그램을 작성 중입니다. 내가 추가/제거 코스 때마다 데이터베이스가 업데이 트와 나는 사용자에 대한 코스의 총 개수를 업데이 트합니다. 내가 코스에 학생을 추가하면 제대로 작동하지만 제거하기 위해 갈 때 PHP 모델 함수에서 0을 반환합니다. 내가 jquery와 문제가 될 수 있다고 생각, 내가 클론을 사용해야 할 수도 있습니다? 그래서 긴 게시물에 대해 유감스럽게 생각합니다. 여러분이 볼 수있는 충분한 코드를 갖고 있는지 확인하고 싶었습니다. 여기에 추가하고 과정에 사용자 제거 내 jQuery 코드입니다 : 여기요소 추가/제거 및 AJAX를 통한 특성 업데이트

function addUserToClass(user) 
{ 

//creates the a data string to send to the controller with the user's id and the course id 
var postString = "courseid="+$("#course option:selected").val()+"&uid="+user.find('input').val(); 

//adds the user to the course list in the database 
$.post('index.php/admin/addUserToCourse',postString); 

    $("#courseList").append(user); 
    $('#courseList .addUser').text('(-)').removeClass('addUser').addClass('removeUser'); 
} 

//removes a user from the selected course in the database as well as on the screen 
function removeUserFromClass(user) 
{ 
var postString = "courseid="+$("#course option:selected").val()+"&uid="+user.find('input').val(); 

//removes the user fromt the course in the database 
$.post('admin/removeUserFromCourse',postString); 

$(user).remove(); 
$('#usertable').append(user); 
$('#usertable .removeUser').text('(+)').removeClass('removeUser').addClass('addUser'); 



} 

내 jQuery를하다 그들이에있는 과목의 수를 업데이트합니다

function updateUserCourses(uid) 
{ 
var postString = 'uid='+uid.siblings(':input').val(); 

    $.post('index.php/admin/getUsersCourses', postString , function(data){ 

    data = jQuery.parseJSON(data); 
    uid.siblings('.internalCounter').text(data.internal); 
    uid.siblings('.externalCounter').text(data.external); 

    }) 

} 

이 필요하면 확실하지가 그러나 호출되는 내 PHP (CodeIgniter는 컨트롤러)입니다 :

function getUsersCourses() 
{ 
    $this->load->model('course_model'); 
    $courses = $this->course_model->getUsersCourses($_POST['uid']); 

    echo json_encode($courses); 

} 

그리고 내 모델 기능 :

,
function getUsersCourses($uid) 
    { 
     $external = array(); 
     $internal = array(); 
     $final = array(); 
     //Selects all of the courses the user has been added to 
     $usersCourses = $this->db->query("SELECT courseid FROM final_course_list WHERE uid='{$uid}'"); 

    //If they have courses, proceed to process them 
    if ($usersCourses->num_rows() > 0) 
    { 
    //For every course they have, we get the category of the course 
    foreach($usersCourses->result() as $row) 
    { 
    $courseCat = $this->db->query("SELECT category FROM courses WHERE id = '{$row->courseid}'")->row_array(); 

    if($courseCat['category'] == 'External Topics') 
    { 
    array_push($external, $courseCat); 
    } 
    else if($courseCat['category'] == 'Internal Topics') 
    { 
    array_push($internal, $courseCat); 
    } 
    } 

    //adds the internal and external amount of classes to one array 
    $final['internal'] = count($internal); 
    $final['external'] = count($external); 
    $result = $final; 
    } 
    else 
    { 
    $result = 0; 
    } 

    return $result; 

} 

답변

0

removeUserFromClass 읽기 안 :

$.post('index.php/admin/removeUserFromCourse',postString); 
+0

하고 올바른 이름, 난 이벤트 리스너 (여기에 나열되지 않은)에 removeUserFromClass()를 부르는 배열을 반환 할 필요가 있었다. 도움을 주셔서 감사하고 내 모순 된 명명 규칙을 지적하십시오. – dan

+0

@ 단 : 당신의 URL에'index.php /'가 누락되었다는 것을 의미합니다 ... 지금 해결 되었습니까? – ifaour

+0

당신은 맞습니다. 저에게 500 오류를주는 index.php가 누락되었습니다. 그러나 그것을 고치지 만 여전히 업데이트하지는 않습니다. 나는 아직 내 모델에서오고있어 어떤 쿼리 결과도 나오지 않는 것처럼 보이는 0을 리턴한다. – dan

0

아무것도 해결하기 위해 영원히 걸릴 바보 같은 실수보다 더 나쁜 없습니다. 내 JS에 문제가 있다고 생각하지 않는다. 내 PHP 모델이었다. 대신 0을 반환하는 내가

array("internal"=>0,"external"=>0);

전 검사 두 배