【问题标题】:Ajax call to same page is not working对同一页面的 Ajax 调用不起作用
【发布时间】: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


【解决方案1】:

在您的 ajax 函数中为您的页面设置 url 选项:)

<script type="text/javascript">
        $(document).ready(function(){
          $("select[name='users']").change(function () {
                jQuery.ajax({
                type: "POST",
                url:"yourpage.php"
                data:  $("form#a").serialize(),
        success: function(data){
            alert("SUCCESS");
                }
                });  
        });
        });
</script>

替换 yourpage.php

【讨论】:

  • 我试过了,还是不行。我认为,如果您将 ajax 调用发送到同一页面,则无需设置 url。 (不确定)。
  • ajax回调函数的数据是什么?
  • 不,它不起作用。我这样使用 - url:“ezeeshuttle.com/all-reservations”,或 url:“AllReservations.php”。如果两者都是错误的方式,那么请告诉我该怎么做。
  • 在页面顶部添加if (isset($_POST['users'])) { echo $_POST['users']; return; }
  • 那么你可以提醒数据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-05
  • 2018-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-23
  • 1970-01-01
相关资源
最近更新 更多