gpt4 book ai didi

php - 为什么在ajax调用后为零

转载 作者:搜寻专家 更新时间:2023-10-31 20:42:17 24 4
gpt4 key购买 nike

我是第一次使用 WordPress 学习 Ajax。我正在使用小部件实现 Ajax 功能,但在提交表单后我得到 0。

您能否指导我并解释为什么会这样,以便我更好地理解。

我的代码:

wp_enqueue_script('jquery');

/**
* Add function to widgets_init that'll load our widget.
* @since 0.1
*/
add_action( 'widgets_init', 'example_load_widgets' );

/**
* Register our widget.
* 'Example_Widget' is the widget class used below.
*
* @since 0.1
*/
function example_load_widgets() {
register_widget( 'Example_Widget' );
}

/**
* Example Widget class.
* This class handles everything that needs to be handled with the widget:
* the settings, form, display, and update. Nice!
*
* @since 0.1
*/
class Example_Widget extends WP_Widget {

/**
* Widget setup.
*/
function Example_Widget() {
/* Widget settings. */
$widget_ops = array( 'classname' => 'example', 'description' => __('An example widget that displays a person\'s name and sex.', 'example') );

/* Widget control settings. */
$control_ops = array( 'width' => 300, 'height' => 350, 'id_base' => 'example-widget' );

/* Create the widget. */
$this->WP_Widget( 'example-widget', __('Example Widget', 'example'), $widget_ops, $control_ops );
}

/**
* How to display the widget on the screen.
*/
function widget() {
echo $name = $_POST['name'];
?>
<form type="post" action="" id="newCustomerForm">

<label for="name">Name:</label>
<input name="name" type="text" />

<input type="hidden" name="action" value="example_load_widgets"/>
<input type="submit" name="submit" value="Submit">
</form>
<br/><br/>
<div id="feedback"></div>
<br/><br/>

<script type="text/javascript">
jQuery('#newCustomerForm').submit(ajaxSubmit);

function ajaxSubmit(){

var newCustomerForm = jQuery(this).serialize();

jQuery.ajax({
type:"POST",
url: "http://localhost/testing/wordpress/wp-admin/admin-ajax.php",
data: newCustomerForm,
success:function(data){
jQuery("#feedback").html(data);
},
error: function(errorThrown){
alert(errorThrown);
}
});

return false;
}
</script>

<?php
die();
add_action('wp_ajax_example_load_widgets', 'example_load_widgets');
add_action('wp_ajax_nopriv_example_load_widgets', 'example_load_widgets');

}
}

最佳答案

我已经创建了像您一样的 ajax 示例,可能会对您有所帮助。

试试这个:

首先创建插件并添加这段代码:

<?php
function sampleHelloWorld() {
?>
<form type="post" action="" id="newCustomerForm">
<label for="name">Name:</label>
<input name="name" type="text" /><br /><br />

<input type="hidden" name="action" value="addCustomer"/>
<input type="submit" name="submit" value="Submit">
</form>

<br/><br/>
<div id="feedback"></div>
<br/><br/>

<script type="text/javascript">
jQuery('#newCustomerForm').submit(ajaxSubmit);

function ajaxSubmit(){

var newCustomerForm = jQuery(this).serialize();

jQuery.ajax({
type:"POST",
url: "http://localhost/testing/wordpress/wp-admin/admin-ajax.php",
data: newCustomerForm,
success:function(data){
jQuery("#feedback").html(data);
},
error: function(errorThrown){
alert(errorThrown);
}
});

return false;
}
</script>
<?php
}

function widget_myHelloWorld($args) {
extract($args);
echo $before_widget;
echo $before_title;?>Hello World Ajax<?php echo $after_title;
sampleHelloWorld();
echo $after_widget;
}

function myHelloWorld_init(){
register_sidebar_widget(__('Hello World'), 'widget_myHelloWorld');
}
add_action("plugins_loaded", "myHelloWorld_init");

wp_enqueue_script('jquery');

function addCustomer(){
echo $name = $_POST['name'];
die();
}

add_action('wp_ajax_addCustomer', 'addCustomer');
add_action('wp_ajax_nopriv_addCustomer', 'addCustomer');
?>

关于php - 为什么在ajax调用后为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19474643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com