我想用ajax显示用户输入。但仍然是执行功能fail 在js文件中。我不知道问题出在哪里。我读过http://codex.wordpress.org/AJAX_in_Plugins 我看到了http://pippinsplugins.com/using-ajax-your-plugin-wordpress-admin/
EDIT:我给了e.preventDefault();
在js中jquery代码的顶部。它的作品(我收到了来自php文件的消息)。但是我不知道这个代码怎么可能对我有用。
主文件中的我的表单
<div id="wrap">
<div id="chat" >
</div>
<div id="message">
<form method="post" action="" id="sendformtoDB">
<input type=\'text\' id="text" name="text"/>
<input id=\'send\' type=\'submit\' name="send" class="button-primary" value=\'Submit\' />
</form>
</div>
</div>
在我的构造函数中添加\\u操作
add_action(\'wp_ajax_InsertIntoDB\',array($this,\'InsertIntoDB\'));
add_action(\'wp_ajax_nopriv_InsertIntoDB\',array($this,\'InsertIntoDB\'));
我首先加载jquery库和我的js文件
public function load_scripts() {
wp_register_script( \'jquery\', plugins_url( \'jq/jquery.js\', __FILE__ ));
wp_enqueue_scripts(\'jquery\');
wp_register_script( \'sendToDB\', plugins_url(\'jq/sendToDB.js\',__FILE__ ),array( \'jquery\' ));
wp_enqueue_script(\'sendToDB\');
wp_localize_script( \'sendToDB\', \'MyAjax\', array( \'ajaxurl\' => admin_url( \'admin-ajax.php\')));
}
php文件
public function InsertIntoDB(){
if(isset($_POST[\'message\'])){
$messages=$_POST[\'message\'];
# global $wpbdb;
/* $wpbdb->insert(\'wp_userlogin\',
array(
"message"=>$message
),
array(
\'%s\'
)
);*/
echo "$messages";
}
die();
}
js文件
jQuery( document ).ready( function($) {
$( " #sendformtoDB" ).submit( function() {
var text;
text = $( "#text" ).val();
console.log(text);
$.ajax({
type: \'POST\',
url: MyAjax.ajaxurl,
data:{"action":\'InsertIntoDB\',message:text},
success:function(msg){
alert(msg);
}
// $(\':input\').not(":submit").val(\'\');
})
.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus+jqXHR );
});
} );
} );