2013-08-22 1 views
1

그래서, 정말 PHP에서 코딩 사랑 해요, 그리고 현재 데이터베이스에 대해 노력하고 있어요.onclick 파일과 MySQL을 삭제하십시오

나는 약간의 AJAX도 배울 필요가 있다고 생각하지만 다른 언어로 뛰어 들기 전에 나는 너희에게 물어볼 것이다.

좋아요, 그래서 저는 현재 프로젝트에 대한 세부 사항을 편집하기 위해 "edit.php"페이지를 코딩하고 있습니다. 프로젝트는 여러 이미지 파일을 첨부 할 수 있으며 모두 연결되어 작동합니다.

각 파일에는 사용자가 이미 업로드 된 파일을 삭제하고 데이터베이스에서 항목을 제거 할 수 있도록 삭제 버튼이 있습니다.

현재로서는 내 코드는 데이터베이스의 내용 만 읽고 표시하지만 사용자가 삭제 아이콘을 클릭하면 실제로 이미지를 삭제하는 피드백이 제공되지 않습니다. 지금 아이콘을 삭제 쳤을 때

<p> 
    <a href="#" onclick="this.parentNode.parentNode.removeChild(this.parentNode)"><img src="assets/ux/delete_12px.png" width="12px" height="12px" style="margin:0px 5px -2px 0px" /></a> 
    <span style="font-weight:bold">[<span style="color:#36F">Picture</span>]</span>&nbsp; 
    <span style="color:#666"><?=$rowImgFile['fileURL']?></span> 
</p> 

그래서, 이미지를 시각적으로 사라질 것 : 여기

이미지 코드입니다. 또한 서버에서 삭제해야합니다.

나는 php와 mysqli로 이것을하는 법을 알고 있지만, 어떻게 함수 안에서 그렇게 할 수 있습니까? 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

다른 페이지에서 삭제 아이콘의 onclick 기능이 페이지 새로 고침을 트리거하고있는 것을보고 URL에? deletepicture = "picture"를 추가했습니다. 이것을하는 것이 최선의 방법입니까? (내가 이미지를 삭제할 때 페이지를 리프레시하고 싶지 않다. 그냥 PHP 코드와 mysqli 코드를 실행하고 빼내고 싶다.)

미리 감사드립니다.

답변

2

나는 어떤 AJAX도 배울 필요가 있다고 생각하지만 다른 언어로 건너 뛰기 전에 나는 너희에게 묻겠다. .

AJAX는 언어가 아닌 프로토콜입니다 (yep). 이 언어는 "JavaScript"라고하며 이미 사용하고 있습니다. 단지 몇 줄의 코드 일뿐입니다.


은 (내가 이미지를 삭제할 때 페이지가 를 새로 고치 싶지 않다. 난 그냥 내 PHP 코드와 mysqli 코드를 실행하고 도망하려는 =)

당신이 원하는 경우 페이지가 다시로드되지 않도록하려면 새 창에서 삭제 요청을 열 수 있습니다 (끔찍한 일입니다). 또는 AJAX 요청을 코딩하는 법을 배웁니다. 귀하의 경우, 그것은 비슷한 것입니다.

onclick="deleteImage(this)" 

onclick="this.parentNode.parentNode.removeChild(this.parentNode)" 

를 교체하고이 페이지에 어디 JS 넣어 (난 당신이 jQuery를 포함 있다고 가정).

<script> 
function deleteImage(domEl){ 
domEl.parentNode.parentNode.removeChild(domEl.parentNode); 
var imageNumber = "-- retrieve here the image identifier you'll need in the PHP page"; 
$.post("/yourServer/deleteImage.php", imageNumber); 
} 
</script> 

이 스크립트를 사용하면 전체 HTML 페이지를 다시로드하지 않고도 PHP 파일에서 작업을 호출 할 수 있습니다. mysqli 데이터베이스에서 이미지를 삭제하려면이 이미지의 고유 식별자가 필요할 것이다. 당신이 물어 보지 않았기 때문에, 나는 당신이 이미 자바 스크립트에서 그것을 얻는 방법을 알고 있다고 가정합니다. 또한 이미지 식별자를 $_POST 또는 $_GET에서 검색 한 후 db에서 데이터를 삭제하기 위해 deleteImage.php 파일을 코딩하는 방법을 이미 알고 있다고 가정합니다.

어떻게 POST 함수로 2 개의 변수를 전송합니까? projectID 및 이미지 URL은

$.post("url", {projectID : "123", imageURL: "234"}); 

{} 표준 JS 리터럴 표기법을 객체입니다. 따라서이 구문도 유효합니다.

var args = {}; 
args.projectID = "123"; 
args.imageURL = "234"; 
$.post("url", args); 
+0

감사합니다. 나는 delete.php 파일 부분을하는 법을 알고있다. 그래서 모든 것이 좋다. =) 나는 .POST();를 사용하는 것을 본다. 그 차이점은 무엇이고, 전체 XMLHttp = new XMLHttpRequest(); xmlhttp.open ("POST", "deleteContent.php? project = '+ projectID +'& file = '+ contentURL +'", true); 암호? –

+0

그 중 하나는 일반 js입니다. 약 15/20 줄의 코드가 필요하며 지옥처럼 보이지 않으므로 호환성 문제가 발생합니다. 내가 게시 한 코드는 jQuery를 사용합니다. 간단한 코드 행과 브라우저 간 문제는 없습니다. 자유롭게 선택하십시오 : 두 경우 모두에서 많은 예제를 찾을 수 있습니다. – Saturnix

+0

좋은. 감사합니다 :) 어떻게 그 POST 함수와 함께 2 변수를 보낼까요? projectID 및 imageURL –