【发布时间】:2016-09-21 15:53:52
【问题描述】:
我在 WordPress 中从数据库中获取记录,然后在选择标签 (HTML) 中动态创建和添加值。
<?php
global $wpdb;
$registeredUsers = $wpdb->get_results('SELECT * FROM wp_users where user_login != "Admin"',ARRAY_A);
$select='<select name="users" class="form-control" id="users">';
$select.= '<option value="Select User"> Select User</option>';
foreach($registeredUsers as $user)
{
$select.='<option value="'.$user['user_email'].'">'.$user['user_login'].'</option>';
}
$select.='</select>';
?>
我在 Html 中使用 $select 变量,并且下拉菜单显示正确。
<form id="a" action="" method="post">
<div style="margin: 0 auto;width:500px;">
<?php echo $select ?>
</div>
</form>
我已经编写了代码来在 jquery 中选择下拉 onchange 事件。它返回成功,但我无法获得下拉列表的选定值。
<script type="text/javascript">
$(document).ready(function(){
$("select[name='users']").change(function () {
jQuery.ajax({
type: "POST",
data: $("form#a").serialize(),
success: function(data){
alert("SUCCESS");
}
});
});
});
</script>
以下代码不返回任何内容
if(isset($_POST['users'])) {
echo $_POST['users'];
}
【问题讨论】:
-
为什么是负面的。你能解释一下吗?
-
(我没有投反对票)。你能说出为什么你使用 Ajax 只是为了从选择标签中接收价值吗?你可以简单地做 $("select[name='users']").change(function () { alert($(this).val()); });
-
我在服务器端(PHP)而不是在客户端(javaquery)需要这个值。
-
我认为jQuery支持方法:“POST”而不是类型:“POST”
-
你看过浏览器开发者工具中的AJAX请求/响应吗?您是否在项目中包含了 jQuery 库?是否报告了任何错误?你是在网络服务器上运行它吗?
标签: php jquery html ajax wordpress