버튼 클릭시 텍스트 상자의 데이터를 저장하고 싶습니다. 나는 아래의 작업을 위해 JQuery AJAX를 사용하고있다. 이 태그를 테마 함수 내에서 만들었습니다.데이터가 JQuery.ajax를 사용하여 저장되지 않음
function theme_user_post_block($vars)
{
$themeUserCommentInput ='';
$themeUserCommentInput .= '<textarea id="txt_1"rows="1" cols="50"></textarea>';
$themeUserCommentInput .= '<input type="submit" value="Post Comment" align="center"
class="btnPostComment" id="btn_1" />'
return $themeUserCommentInput;
}
이렇게하면 페이지 안에 텍스트 상자와 버튼을 표시 할 수 있습니다. 지금 여기 내 JS 코드는 다음과 같습니다 - 다음과 같이
(function($)
{
Drupal.behaviors.PostComment= {
attach: function (context, settings) {
$('.btnPostComment', context).click(function (event) {
var post = "&newcomment=Comment1&logid=log1";
jQuery.ajax({
url: 'postcomment',
type: 'POST',
dataType: 'json',
data: post,
success: function (data) { alert(data); },
error: function(jqXHR, textStatus, errorThrown){alert(textStatus +
errorThrown);}
});
});
}
}
})(jQuery);
다음 내가 URL 이름을 가진 메뉴 페이지를 생성 : -
function postcomment_menu(){
$items=array();
$items['postcomment']=array(
'title'=>t(''),
'type'=> MENU_CALLBACK,
'page callback' => 'user_comment_post',
'access arguments' => array('access content'),
);
return $items;
}
function user_comment_post(){
global $user;
$cid = db_insert('user_comment')
->fields(array(
'comment_user_id' => $user->uid,
'reference_id' => $_POST['logid'],
'comment_desc'=>$_POST['newcomment'],
'createdon'=>REQUEST_TIME,
))
->execute();
if($cid!=0)
{
//GetUserComments($i);
drupal_json_output("success");
}
}
그래서 내가 jQuery를 + 아약스에 필요한 모든 것을 수행 한 기능을 제출 . "Post Comment"버튼을 누르면 "errorundefined"라는 경고 메시지가 나타납니다. 이 경고는 jQuery.AJAX 함수의 오류로 인해 표시됩니다. 또한 사용자 정의 메뉴 콜백도 호출되지 않습니다.
샘플 코드가 올바르게 표시되지 않습니다. 복사하여 붙여 넣기해도 표시되는 코드가 올바른 형식인지 확인하십시오. 그 이유는 소유하고있는 문제가 그것이 아닌지 알 수 없습니다. 예를 들어'textarea'의'id' 속성'txt_1에'' ';' '', 서식을 어지럽히는. – Nope
내 코드 실수로 죄송합니다. 실제 ID의 동적 값은 여기서 단순화하기 위해 정적 값으로 대체되었습니다. 코딩 부분을 편집했습니다. – user1843970