2013-11-21 1 views
0

JS 파일에 요청 ID 보내기는 PHP

buttons: { 
       save : function() { 
        calEvent.id = id; 
        id++; 
        calEvent.start = new Date(startField.val()); 
        calEvent.end = new Date(endField.val()); 
        calEvent.title = titleField.val(); 
        calEvent.body = bodyField.val(); 

        //post to events.php 
        $.post("events.php?action=save&start="+calEvent.start.getTime()/1000+"&end="+calEvent.end.getTime()/1000+"&title="+calEvent.title+"&body="+calEvent.body); 

        $calendar.weekCalendar("removeUnsavedEvents"); 
        $calendar.weekCalendar("updateEvent", calEvent); 
        $dialogContent.dialog("close"); 
       },, 
      "delete" : function() { 
        calEvent.id = id; 
        id++; 

        //post to events.php 
       $.post("events.php", { action: "del", id: calEvent.id }); 

        $calendar.weekCalendar("removeEvent", calEvent.id); 
        $dialogContent.dialog("close"); 


       } , 
       cancel : function() { 
        $dialogContent.dialog("close"); 
       } 
      } 
     }).show(); 

PHP 파일 이제

if ($action == 'del') 
{ 
    $id = $_GET['id']; 

    $del = "DELETE FROM meeting_rooms_calendar WHERE id='$id'"; 
    $result = mysql_query($del, $link); 
    print_r($id); 
} 
elseif($action == 'save') 
{ 
    $title = $_REQUEST['title']; 
    $body = $_REQUEST['body']; 
    $start_time = (int)$_REQUEST['start']; 
    $start_time = $start_time + 60*60; 
    $end_time = (int)$_REQUEST['end']; 
    $end_time = $end_time + 60*60; 
    $start = date('c',$start_time); 
    $end = date('c',$end_time); 
    $sql = "INSERT INTO meeting_rooms_calendar(title,body,start,end) VALUES ('$title','$body','$start','$end')"; 
    $result = mysql_query($sql, $link); 

} 

내가 저장를 클릭하면, 내가 클릭하면 데이터베이스에 PHP와 PHP에 요청 변수를 게시 할 예정 저장 DELETE 요청 된 ID를 PHP로 보내지 않으므로 PHP가 데이터베이스에서 그것을 삭제할 수 없습니다. JS 파일을 PHP로 보내려면 어떻게해야합니까? 내가

www.myweb.com/events.php?action=del&id=1 

에 의해 수동으로 할 경우 그 PHP가 작동하는 것을 의미하므로

이 데이터베이스에서 삭제됩니다. JS 부분 일 뿐이므로 데이터베이스에서 자동으로 삭제되지 않습니다.

+1

코드가 여러 위치에서 SQL 삽입에 취약하다는 점에 유의하십시오. 'mysql_ *'대신'PDO' 또는'mysqli_ *'를 사용해야한다. –

+0

'$ .post ("events.php? action = save' 당신은이 페이지에 게시하고 있습니다 만, 실제로 당신은 'del'을 나중에 실제 게시물 –

+0

을 통해 보내는 get 매개 변수의 일부로 '저장'하고 있습니다. 위 코드는 action = save를 호출해야하는 save 함수이지만 다른 하나는 delete 함수이며 action = del – user2957155

답변

1

$id = $_GET['id'] 대신 $_POST을 사용해야합니다. 당신이 JQuery와에게 $.post 방법

$action = $_POST['action']; 
+0

을 호출해야합니다. JS에서 ID를 PHP로 보내는 것입니까? POST에서 변경하면 'events.php? action = del & id = 46' – user2957155

+0

$ action = $ _POST [ 'action'];을 추가 했습니까? JS에서 ID로 보내는 것이 여전히 작동하지 않습니다. –

0

을 사용하고 있기 때문에 당신은 JS를 통해 $.post를 발행하고 있지만 당신은 당신의 PHP 코드를 $_GET에 의존하고 있습니다. 스틱을 $_POST에 붙여주세요.

+0

POST에서 그것을 변경하면 수동으로 데이터베이스에서 삭제되지 않습니다. 'events.php? action = del & id = 46' – user2957155

+0

그런 다음'$ _REQUEST'를 사용하십시오. HTTP 프로토콜의 정당한 사용과 RESTful 표준 [즉, 'DELETE/resource/: id'] 대신에 RPC 유행 [즉, '? action = delete & id = : id']. – moonwave99