Wordpressでプラグインを開発していますが、Ajaxを使用してページをリロードせずに別のPHPファイルにデータを投稿しようとしています。バックエンドでは、PHPファイルはif(isset())を使用してSQLクエリを実行します。クライアント側では、ユーザーは個々のレコードfadeOutとレコードが正常に削除されたことを確認する必要があります。WordpressでページをリロードせずにJQueryとAJAXに投稿する
更新:フォームボタンがクリックされると、正しいdivがフェードインしてフェードアウトするまで、javascriptは機能しています。しかし、PHPファイルは、var_dumpでテストされているように、値がポストされていません。
HTMLコード:
<!-- problem: when setting "action" to a url, that page is automatically loaded. I want to stay on the existing page. -->
<form action='' id='form-delete-assoc' method='post'>
<input name='remove_all' type='submit' id='remove-all' value='Remove All'></input>
</form>
のjQuery:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('tr.assoc_row').show();
$('#settings-removed-msg').hide();
$('#new-assoc-msg').hide();
$('#formdeleteassoc').submit(function(e){
e.preventDefault();
$.ajax ({
type: 'POST',
url: '<?php echo $cb_t2c_remove_all_url; ?>',
data: {removeall: 'yes'
},
success: function() {
$('#settings-removed-msg').fadeIn('fast');
$('tr.assoc_row').fadeOut('fast');
}
});
});
$('#formsavesettings').submit(function(){
$('#new-assoc-msg').fadeIn('fast');
});
});
</script>
remove_all.php:
<?php
//remove_all.php
global $wpdb;
$prefix = $wpdb->prefix;
$remove_var_dump = $_POST['removeall']; //returning NULL
var_dump($remove_var_dump);
if (isset($_POST['removeall'])){
$wpdb->query("DELETE FROM ".$prefix."cb_tags2cats");
}
?>
てみ加える復帰はfalse;あなたのAjaxコールの後。 – akiller