我正在设计一个WordPress网站,我已经完成了设计部分,现在下一阶段是数据库相关的事情。
我用谷歌搜索了一些插件,我得到了
php code widget
插件并作为小部件插入到我的页面之一
我尝试安装
insert_php
插件,但它不起作用,所以我继续使用 php_code_widget
Pages-> All Pages-> Home Page -> Add Row -> Add Widget -> Php Code Widget.
现在在我的 MySQL 数据库中,我有一个名为
Rituals
的简单表,包含三列
Ritual ID-> Int -> Auto Increment.
Ritual_Name-> varchar
Ritual_Active-> varchar.
现在我需要将仪式名称插入数据库,通过一些参考,我获得了此代码,并将其放入 php 代码小部件窗口中。
<?php
require_once('../../../wp-load.php');
function insertuser(){
if(isset($_POST['submit']){
global $wpdb;
$rname=$_POST['rname'];
$ractive=$_POST['ractive'];
$table_name = $wpdb->prefix . "mahathiwp";
$wpdb->insert($table_name, array ('Ritual_Name' => $rname, 'Ritual_Active' => $ractive) );
}
?>
<form action="" method="post">
Ritual Name: <input type="text" name="rname" /><br><br>
Ritual Active: <input type="text" name="ractive" /><br><br>
<input type="submit" name="submit"/>
</form>
<?php
}
insertuser();
?>
Data is not getting inserted.
您能否建议将数据插入数据库以及检索数据并将其显示在我的 WordPress 页面中的正确且更快的方法。任何帮助表示赞赏。
您必须自定义您的主题,
添加代码以在提交表单时执行操作。
functions.php
function childtheme_style_andscripts(){
//wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css' );
wp_enqueue_script('ajax-function', get_stylesheet_directory_uri() . '/js/ajaxfunction.js', array('jquery'), '1.0', true );
wp_localize_script( 'ajax-function', 'usersubmitform', array(
'url'=> admin_url('admin-ajax.php'),
'security'=> wp_create_nonce('our-nonce')
) );
}
add_action('wp_enqueue_scripts','childtheme_style_andscripts');
function form_action_function(){
require_once(dirname( __FILE__ ).'/../../../wp-load.php');
$data = $_POST['data'];
global $wpdb;
if( !check_ajax_referer('our-nonce', 'security' ) ){
wp_send_json_error('security failed');
return;
}
//var_dump($data);
$rname=$data['rname'];
$ractive=$data['ractive'];
$table_name = "rituals";
$wpdb->insert($table_name, array ('rname' => $rname, 'ractive' => $ractive) );
$wpdb->show_errors();
$wpdb->print_error();
echo 'From Submitted Successfully';
die();
}
add_action('wp_ajax_nopriv_form_action_function','form_action_function');
add_action('wp_ajax_form_action_function','form_action_function');
自定义页面模板
<?php
/**
Template Name: Form For User
*/
get_header(); ?>
<div id="main-content" class="main-content">
<?php
if ( is_front_page() && twentyfourteen_has_featured_posts() ) {
// Include the featured content template.
get_template_part( 'featured-content' );
}
?>
<div id="primary" class="content-area">
<div id="content" class="site-content" role="main">
<h1 class="headingform">User Form</h1>
<div class="msg"></div>
<form class="userform">
Ritual Name: <input type="text" id="rname" name="rname" /><br><br>
Ritual Active: <input type="text" id="ractive" name="ractive" /><br><br>
<input id="usersubmit"type="submit" Value="Submit" />
</form>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_sidebar( 'content' ); ?>
</div><!-- #main-content -->
<?php
get_sidebar();
get_footer();
ajax-admin.js
这里我使用了ajax,这就是为什么创建这个文件的原因。将此文件放入你的主题js文件夹中。
jQuery(document).ready(function($){
var submitButton = document.getElementById('usersubmit');
var ajaxFunctionformprocess = function(fromdata, action){
$.ajax({
type:'post',
url: usersubmitform.url,
data:{
action:action,
data:fromdata,
security:usersubmitform.security,
},
success:function(reponse){
$('div.msg').html(reponse);
},
error:function(response){
alert(response);
}
});
}
submitButton.addEventListener('click', function(event){
event.preventDefault();
var fromdata = {
'rname':document.getElementById('rname').value,
'ractive':document.getElementById('ractive').value,
};
ajaxFunctionformprocess(fromdata, 'form_action_function');
});
});