【发布时间】:2013-10-30 13:46:40
【问题描述】:
我想检索更改下拉列表的值,并将其发布到我的 PHP(目前,PHP 只是 var_dump,用于调试目的)
我坚持将选定的值发布到我的 AJAX,似乎没有任何变化。
我使用 WP 框架加载脚本并通过 admin-ajax.php 运行它们——我一直
将此方法用于其他 AJAX 函数,并且它正在工作。
我有一个下拉列表,如下所示:
HTML
<form action="" method="post">
<select name="count" class="count">
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
</select>
<input class="koordinator_id" type="hidden" name="koordinator_id" value="<?php echo $_SESSION['coordinator_id'] ?>">
</form>
AJAX
$(document).ready(function () {
$('select.count').change(function () {
alert("Whyunoalert?");
$.ajax({
type: "POST",
url: (my_ajax_script.ajaxurl),
data: ({
action: 'generate',
koordinator_id: $('input[name=$"koordinator_id"]').val(),
id: $('select.count').val()
}),
success: function (msg) {
alert("Data changed:" + msg);
}
});
});
});
PHP
function generate() {
$count = $_POST['id'];
var_dump($count);
$koordinator_id = $_POST['koordinator_id'];
var_dump($koordinator_id);
}
编辑
我已将代码相应地更改为前三个 cmets。现在我的代码执行了 AJAX,但 php 文件中仍然没有生成 var_dump。感谢您到目前为止的帮助,希望您能做得更多。我还添加了 functions.php 代码,其中绑定了 php 函数并设置了到 ajax-admin.php 的重定向。
functions.php
function load_scripts() {
wp_enqueue_script('local_jquery', '/wp-content/themes/tutorial_theme/scripts/scripts.js');
wp_enqueue_script('ajax_func', get_template_directory_uri() . '/scripts/ajax_implementation.js');
}
if (!is_admin())
add_action('wp_enqueue_scripts', 'load_scripts');
add_action('template_redirect', 'load_scripts');
$dirName = dirname(__FILE__);
$baseName = basename(realpath($dirName));
require_once ("$dirName/ajax_functions.php");
add_action("wp_ajax_nopriv_approve", "generate");
add_action("wp_ajax_approve", "generate");
第二次编辑
从 ajax 中删除了这个:(来自旧的复制粘贴)
dataType: 'html',
【问题讨论】: