2013-04-12 4 views
0

아약스를 사용하여 주석을 삽입하려고합니다. $ _POST를 제외하고 모두 잘 작동합니다. 테이블의 주석 필드가 비어 있도록 데이터를 게시하는 것 같지 않습니다. 다른 것들은 날짜 삽입과 같이 잘 작동합니다. 나는 아약스에만 문제가있다. (PHP에서는 문제가 없다.)

어쨌든, 여기 내 코드입니다 : -아약스 데이터 게시 및 데이터베이스에 삽입

<head> 
<script> 
function su_post(id) { 
    $("#load_post").show(), 

    $("#post_submit").click(function() { 
    var c_post = $("#c_post").val(); 
    var dataString = '&c_post=' + c_post; 

    $.ajax({ 
    type: "POST", 
    url: '/script/post.php', 
    data: "id=post_script" + id, 
    cache: false, 
    success: function(){ 
    $("#load_post").fadeOut(); 
    } 
    })}); 
}; 
</script> 
</head> 
<body> 
<form id="form_post" method="post" action="javascript:su_post(1)"> 
<label for="c_post">Post your updates/status</label> 
<input type="text" name="c_post" id="c_post" /> 
<br /><br /><input type="submit" id="post_submit" value="Post" /> 
</form> 
</body> 

편집 : 당신이 나를 이해하지 않을 수 있기 때문에, 입력 상자에 입력 한 값을 가져 와서 post.php에 값을 보내거나 보내는 데는 문제가 있습니다. data: {id: post_script + id, c_post: c_post}을 입력하면 코드가 PHP 파일을 전혀로드하지 않는 것 같습니다. (게시물에 걸리면 ->http://prntscr.com/10dmjt)

가 사전에 감사합니다 :)

+0

'rand' 필드의 역할은 무엇입니까? 네가 그걸 버리면 어떻게 될까? 그리고 'append' 문은 왜 주석 처리 되었습니까? – Floris

+0

죄송합니다. 그 라인을 게시하려하지 않았습니다. 나는 내가 그것을 필요로 할 때 그것을 기억할 것이기 때문에 그것을 주석 처리했다. –

답변

0

당신의 ajax() 기능의 데이터 속성은 객체 유형이 될 필요가있다. 이처럼 : 당신은 기능 javascript:su_post(1) 호출

function su_post(id) { 
    $("#load_post").show(); 

    $("#post_submit").click(function() { 
     var c_post = $("#c_post").val(); 
     var dataString = '&c_post=' + c_post; 

     $.post("ajax_login.php",{ user_name:$('#username').val(),password:$('#password').val(),rand:Math.random() }); 

     $.ajax({ 
      type: "POST", 
      url: '/script/post.php', 
      data: { id: "post_script" + id }, 
      cache: false, 
      success: function(){ 
       $("#load_post").fadeOut(); 
      } 
     }); 
    }); 
} 
+1

와트 에러가 발생합니까? – errieman

+0

코드가 엉망이었습니다. 또한 페이지에 jQuery 라이브러리를 포함 시켰습니까? – errieman

+0

예, jquery 라이브러리를 포함 시켰습니다 –

0

, 그래서 당신의 데이터 필드는 {id: "post_script1"} 포함되어 있음이 보인다 :

data: { id: "post_script" + id } 

또한 있었다 일부 구문 오류, 함수는 다음과 같이한다. 귀하의 "의견"은 AJAX에 전달되는 곳은 어디입니까? 당신은

은 아마 당신이 줄 같은 것을 가질 예정 ... 그것에 값을 할당 한 후 var dataString와 아무것도하지 않는 보낸 사람

data: "id=post_script" + id + dataString, 

을, 당신이

을 한 후 dataString&c_post=whatever the comment is을 포함 생각
var c_post = $("#c_post").val(); 
var dataString = '&c_post=' + c_post; 

당신이 몇 가지 추가뿐만 아니라 dataString에 인용 필요가 있는지 나는 내가 $(#c_post).val() 함수가 처리합니다 생각하지 않습니다 ... 궁금 않는, 그래서 당신은필요 의심어딘가 - 아니면 ajax이 당신을 위해합니까? 나는 그것이 @ errieman의 {}이 유용하게 쓰이는 곳이라고 생각합니다 ... 그것은 물건 전체를 물건으로 바꾸고 당신을 위해 탈출의 경우를 필요로합니다. 즉 라인을 만들 것이 필요합니다

data: {id: post_script + id, c_post: c_post} 

난 당신이 뭘 하려는지 짐작하는 데로서 나는,이 중 하나라도 정확하게 권리로 밝혀 의심 -하지만 이들 중 하나가 줄 것이다 희망 할 당신은 당신의 문제를 해결할 영감을 얻습니다.

+0

귀하의 의견에서 귀하가 내 제안을 구현하려고 시도한 다른 질문을 봅니다. 나는 PHP 스크립트가 객체 전달에 만족하지 않는다고 생각합니다. 따라서 첫 번째 제안에 따라 (이스케이프 처리 된) dataString을 추가하십시오. 그게 뭐지? – Floris

0

$("#post_submit").click(function()을 꺼내서 var c_post = $("#c_post").val();var dataString = '&c_post=' + c_post;을 맨 위에 넣었을 때 효과가있는 것처럼 보입니다.
내 코드는 다음과 같습니다 : -

function su_post(id) { 
    var c_post = $("#c_post").val(); 
    var dataString = '&c_post=' + c_post; 
    $("#load_post").show(), 

    $.ajax({ 
    type: "POST", 
    url: '/script/post.php', 
    data: {c_post:c_post}, 
    cache: false, 
    success: function(){ 
    $("#load_post").fadeOut(); 
    } 
    }); 
}; 
+0

잘못된 정보 ('c_post' 대신에'id')가 도움이된다는 것을 알게되어 기쁩니다. 이제는 더 이상 사용하지 않으므로 코드에서'dataString' 라인을 제거 할 수 있습니다 ... – Floris

+0

var c_post = $ ("# c_post") .val(); –

+0

중간 저장 장치가 필요없이 'data :'문으로 옮길 수 있습니다. 내 규칙 : 변수를 한 번만 사용하는 경우 가독성을 높이기 위해 보관하십시오. 이 규칙의 한계는 ... – Floris

관련 문제