Javascript Wordpress Ajax插入不起作用
您好,我正在Javascript Wordpress Ajax插入不起作用,javascript,php,jquery,ajax,wordpress,Javascript,Php,Jquery,Ajax,Wordpress,您好,我正在WordPress中创建弹出式插件,通过ajax将数据插入数据库。我的弹出式插件代码在jQuery之前一切正常,但在jQuery之后,数据不会插入数据库 这个代码现在对我来说很好用。谢谢你的帮助 <?php /* Plugin Name: SMS POPUP PLUGIN Description: SMS POPUP PLUGIN Version: 1.0 License: Plugin comes under GPL Licence. */ if ( ! define
WordPress
中创建弹出式插件,通过ajax将数据插入数据库。我的弹出式插件代码在jQuery之前一切正常,但在jQuery之后,数据不会插入数据库
这个代码现在对我来说很好用。谢谢你的帮助
<?php
/*
Plugin Name: SMS POPUP PLUGIN
Description: SMS POPUP PLUGIN
Version: 1.0
License: Plugin comes under GPL Licence.
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
if ( version_compare( get_bloginfo( 'version' ), '3.9', '<' ) ) {
wp_die("You must update WordPress to use SMS Factory Bulk SMS Service!");
}
include_once(ABSPATH.'wp-admin/includes/plugin.php');
function sfp_popup() {
global $wpdb, $wnm_db_version;
$sfp_sql = array();
//sms table
$sfp_content = $wpdb->prefix . "sfp_content";
if( $wpdb->get_var("show tables like '". $sfp_content . "'") !== $sfp_content ) {
$sfp_sql[] = "CREATE TABLE ". $sfp_content . " ( sfp_id int(11) NOT NULL AUTO_INCREMENT, sfp_name varchar(256) NOT NULL, sfp_phone int(11) NOT NULL, sfp_pwd varchar(100) DEFAULT NULL, sfp_email varchar(100) DEFAULT NULL, sfp_query varchar(256) DEFAULT NULL, PRIMARY KEY (sfp_id) ) ";
}
if ( !empty($sfp_sql) ) {
require_once(ABSPATH."wp-admin/includes/upgrade.php");
dbDelta($sfp_sql);
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
add_option("wnm_db_version", $wnm_db_version);
}
}
register_activation_hook(__FILE__, 'sfp_popup');
add_action( 'wp_head', 'enque_sfp_script', 100 );
function enque_sfp_script(){
//Include Javascript library
wp_enqueue_script('sfp_script', plugins_url( '/js/demo.js' , __FILE__ ) , array( 'jquery' ));
// including ajax script in the plugin Myajax.ajaxurl
wp_localize_script( 'sfp_script', 'sfpAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php')));
}
function sfp_insert(){
global $wpdb;
$sfp_table = $wpdb->prefix."sfp_content";
$name = $_POST['sf_name'];
$phone = $_POST['sf_phone'];
$message = $_POST['sf_message'];
$wpdb->insert(
$sfp_table,
array(
'sfp_name' => $name,
'sfp_phone' => $phone,
'sfp_query' => $message
),
array(
'%s',
'%d',
'%s'
)
);
die();
return true;
}
add_action('wp_ajax_sfp_insert', 'sfp_insert');
add_action('wp_ajax_nopriv_sfp_insert', 'sfp_insert');
add_action( 'wp_footer', 'sf_display_popup', 100 );
function sf_display_popup(){
?>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
<script>
jQuery(document).ready(function($) {
setTimeout(function(){
$('#myModal').modal('show');
}, 3000);
$( "#sf-popup .sfname" ).keyup(function() {
if($(this).val() == '' || $( "#sf-popup .sfphone").val() == ''){
$('#sfpsubmit').attr('disabled','disabled');
} else{
$('#sfpsubmit').removeAttr('disabled');
$( ".sfp_btn" ).click(function() {
$('#myModal').modal('hide');
});
}
});
$( "#sf-popup .sfphone" ).keyup(function() {
var sfp_phone = $(this).val();
if(sfp_phone.length > 10){
$(this).val($(this).val().substr(0,10));
$('#sfpsubmit').removeAttr('disabled');
}
if(sfp_phone == '' || $( "#sf-popup .sfname").val() == '' || $.isNumeric(sfp_phone) == false || sfp_phone.length < 10){
$('#sfpsubmit').attr('disabled','disabled');
} else{
$('#sfpsubmit').removeAttr('disabled');
$( ".sfp_btn" ).click(function() {
$('#myModal').modal('hide');
});
}
});
});
</script>
<style>
.modal.fade .modal-dialog {
-webkit-transform: scale(0.1);
-moz-transform: scale(0.1);
-ms-transform: scale(0.1);
transform: scale(0.1);
top: 300px;
opacity: 0;
-webkit-transition: all 0.5s;
-moz-transition: all 0.5s;
transition: all 0.5s;
}
.modal.fade.in .modal-dialog {
-webkit-transform: scale(1);
-moz-transform: scale(1);
-ms-transform: scale(1);
transform: scale(1);
-webkit-transform: translate3d(0, -300px, 0);
transform: translate3d(0, -300px, 0);
opacity: 1;
}
textarea.col-md-12 {
margin: 25px 0;
}
</style>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="memberModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3>Modal header</h3>
</div>
<div class="modal-body">
<?php
echo "<form method='post' action='' name='sf-popup' id='sf-popup' >";
echo "<input type='text' name='sf_name' id='sf_name' placeholder='Name' class='col-xs-12 col-md-6 sfname'>";
echo "<input type='text' name='sf_phone' id='sf_phone' placeholder='98765-43210' class='col-xs-12 col-md-offset-1 col-md-5 sfphone'>";
echo "<textarea name='sf_message' id='sf_message' placeholder='Enter Your Query' class='col-md-12'></textarea>";
echo "</form>";
?>
</div>
<div class="modal-footer">
<?php
echo "<button id='sfpsubmit' class='btn btn-primary sfp_btn' name='sfpsubmit' disabled>Submit</button>";
?>
</div>
</div>
</div>
</div>
<?php
}
?>
请尝试以下数据:
数据:{action:“post\u word\u count”,sf\u name:name},
使用此debugin函数
add_action('wp_ajax_post_word_count', 'post_word_count');
add_action('wp_ajax_nopriv_post_word_count', 'post_word_count');
function post_word_count(){
echo $_POST['sf_name'];
die();
}
请尝试以下数据:
数据:{action:“post\u word\u count”,sf\u name:name},
使用此debugin函数
add_action('wp_ajax_post_word_count', 'post_word_count');
add_action('wp_ajax_nopriv_post_word_count', 'post_word_count');
function post_word_count(){
echo $_POST['sf_name'];
die();
}
在代码中,您已将脚本排队,然后将其本地化 它应该首先注册,然后本地化,然后排队
// Register the script
wp_register_script( 'some_handle', 'path/to/myscript.js' );
// Localize the script with new data
$translation_array = array(
'some_string' => __( 'Some string to translate', 'plugin-domain' ),
'a_value' => '10'
);
wp_localize_script( 'some_handle', 'object_name', $translation_array );
// Enqueued script with localized data.
wp_enqueue_script( 'some_handle' );
我还没有测试过你的方法,但这个方法对我有效
在代码中,您已将脚本排队,然后将其本地化 它应该首先注册,然后本地化,然后排队
// Register the script
wp_register_script( 'some_handle', 'path/to/myscript.js' );
// Localize the script with new data
$translation_array = array(
'some_string' => __( 'Some string to translate', 'plugin-domain' ),
'a_value' => '10'
);
wp_localize_script( 'some_handle', 'object_name', $translation_array );
// Enqueued script with localized data.
wp_enqueue_script( 'some_handle' );
我还没有测试过你的方法,但这个方法对我有效
控制台中没有显示任何内容。在
警报(数据)
中显示0控制台中未显示任何内容。在警报(数据)
中,显示0他的脚本正在运行,因此问题不在于脚本的放置是的,我的脚本工作正常,唯一的问题是将数据插入数据库。我想澄清的是,我在数据库中有六个字段,但我正在插入一个。你能告诉我你的php文件的名称和位置吗?Hi@PrakashRao我在本地创建这个文件,我所有的php代码都在一个文件中,js在另一个文件中。他的脚本正在运行,所以问题不在于脚本的放置。是的,我的脚本工作正常问题在于将数据插入数据库中。我想澄清一下,我在数据库中有六个字段,但我正在插入一个。你能告诉我你的php文件的名称和位置吗?Hi@PrakashRao我在本地创建这个文件,我所有的php代码都在一个文件中,js在另一个文件中。警报显示什么?什么都没有发生?当我点击警报按钮时,好的(数据)
显示的是0,就是这个值没有出现在echo$\u POST['sf\u name'];文档中的
在您应该这样做之前,如果您在POST中运气不佳,请尝试使用get类型:'get',
和phpecho$\u get['sf\u name']
我的js代码在另一个文件中,php代码在另一个文件中警报显示什么“什么也没有发生”不是很有帮助好的当我点击按钮时,警报(数据)
显示0就是这样值没有出现在echo$\u POST['sf\u name']
在文档中是在您应该这样做之前,如果您在post中没有运气,请使用get键入:'get',
和phpecho$\u get['sf_name'];
我的js代码在另一个文件中,php代码在另一个文件中