2015-01-04 4 views
1

나는 튜토리얼 비디오 (길이 112 비디오)를 따라 갔다. 그래서 나는 코딩에 관해서 많은면에서 아주 무지하다. 나는 톤을 배웠지 만.ajax가있는 페이지에 html을 출력하는 방법을 모른다.

제목을 쓰는 데 어려움을 겪고 있습니다. 현재 작업중인 관리 패널에서 단락 태그에 jquery 부트 스트랩 도우미 클래스 (예 : http://i1379.photobucket.com/albums/...ps44962161.png)의 "alert alert-success"가 할당되어 있습니다.

위의 예제에서 작동하는 이유는 save (삽입 및 업데이트)를 눌렀을 때 실행되는 SQL에 ajax가 필요하지 않기 때문입니다.

INSERTING 및 UPDATING이 config 폴더의 "queries.php"파일에있을 때 실행되는 코드입니다. 게시물을 삭제하는 경우 반향 할

case 'pages': 

if (isset($_POST['submitted']) && $_POST['submitted'] == 1) { 
// POST vars  
$title = mysqli_real_escape_string($dbc, $_POST['title']); 
$label = mysqli_real_escape_string($dbc, $_POST['label']); 
$header = mysqli_real_escape_string($dbc, $_POST['header']); 
$body = mysqli_real_escape_string($dbc, $_POST['body']); 

if (isset($_POST['id']) AND $_POST['id'] != ''){ 

$action = "updated";  
// UPDATE 
$query = "UPDATE posts SET user = $_POST[user], slug = '$_POST[slug]', title = '$title', label =  '$_POST[label]', header = '$header', body = '$body' WHERE id = $_GET[id]"; 

}else{ 

$action = "added"; 
// INSERT 
$query = "INSERT INTO posts (type, user, slug, title, label, header, body) VALUES (1, $_POST[user], '$_POST[slug]', '$title','$label','$header','$body')"; 

} 

$result = mysqli_query($dbc, $query); 

//Error Handling  
if ($result) { 
$message = '<p class = "alert alert-success">Page was '.$action.'!</p>'; 
}else{ 
$message = '<p class = "alert alert-danger">Page could not be '.$action.' because:   '.mysqli_error($dbc).'</p>'; 
$message .= '<p class = "alert alert-warning">Query: '.$query.'</p>'; 
} 
} 

if (isset($_GET['id'])) {$opened = data_post($dbc, $_GET['id']);} 

break; 

그러나, 나는 $ 메시지 변수를 얻는 방법을 모르는 : 그것은 (물론 오류 처리 부분)은 다음과 같다. 게시물이 왼쪽의 목록에서 즉시 사라 지도록 아약스를 사용하고 있습니다. 여기

는 자바 스크립트입니다 :

$(".page-delete").on("click", function(){ 

var selected = $(this).attr("id"); 
var page_id = selected.split("del_").join(""); 

var confirmed = confirm("Are you sure you wanted to DELETE this page?"); 

if (confirmed == true) { 

$.get("ajax/pages.php?id="+page_id); 

$("#page_"+page_id).remove(); 

}; 

... 그리고 여기에 아약스의 :

여기
include '../../config/connection.php'; 

$id = $_GET['id']; 

$query = "DELETE FROM posts WHERE id = $id"; 
$result = mysqli_query($dbc, $query); 

if ($result) { 
echo "Page Deleted."; 
} else { 
"There was an error...<br>"; 
echo $query.'<br>'; 
echo mysqli_error($dbc); 
} 

이야라는 메시지가 뱉어하기 위해 노력하고있어 :

</div> <!-- END col-md-3 --> 

<div class="col-md-9"> 

<!--FORM--> 
<form role="form" action="index.php?page=pages&id=<?php echo $opened['id']; ?>" method="post"> 

<?php if(isset($message)) { echo $message; } ?> 

<!-- INPUT FIELD for title --> 
<div class="form-group"> 

<label for="title">Page Title</label> 
<input type="text" class="form-control" value="<?php echo $opened['title'];?>" name="title"   id="title" placeholder="Page's Title" /> 

</div> 

감사합니다 도울 수있는 누구에게나, 그리고 나는 그럴듯한 무언가를 알지 못해 사과드립니다.

다시 읽어 주셔서 감사합니다. 평화!

+2

줄'$ .get ("ajax/pages.php? id ="+ page_id);'에서 응답을 얻지 못했습니다. 또한 질문 & 코드의 범위를 좁히십시오. – Raptor

+0

왜 당신은'$ title = mysqli_real_escape_string ($ dbc, $ _POST [ 'title']);'과 같은 어떤 데이터를 벗어나지 만 여전히 대부분의 사용자 데이터를 직접 삽입합니다. '$ query = "UPDATE posts user = $ _POST [user],'?? – Sean

+0

확실하게'$ action'은 테스트되지 않고 할당되지 않아야하고 에러 메시지는'$ 결과 '가 아니라면 –

답변

0

ajax get에 콜백이 필요합니다.

$.get("ajax/pages.php?id="+page_id, function(data) { 
    $("#result").html(data); // replaces the html in div#result 
    $("#page_"+page_id).remove(); 
}) 

그리고 div 그래서 우리는 귀하의 질문은 사방에 약간은

<div id="result"><?php if(isset($message)) { echo $message; } ?></div> 

jQuery로 교체 할 수 있습니다 당신은 몇 가지 책을 읽고 할 수 있습니다와 같은 HTML 태그에 메시지를 넣어 모범 사례.

+0

네, 고맙습니다. 나는 멍청하고 독서를 할 수는 있지만, 나는 또한 심각한 멍청이로 고통받는 사람입니다. – theconfusedbroom

관련 문제