【问题标题】:Dropdown-menu Bootstrap PHP下拉菜单引导 PHP
【发布时间】:2015-01-31 06:36:24
【问题描述】:

我正在尝试使用 AJAX 从 PHP 页面发送数据,但我无法理解这是如何工作的,我将解释到目前为止我所做的事情。

引导下拉菜单

<div class="btn-group">
    <button class="btn btn-danger btn-lg dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
        BOTÂO <span class="caret"></span>
    </button>                   
    <ul class="dropdown-menu" role="menu" id="status">
        <li data="1"><a href="#">valor 1</a></li>
        <li data="2"><a href="#">valor 2</a></li>
    </ul>
</div>

AJAX

$(document).on('click','#status li',function(){
    $.ajax({
        url  : 'exemple.php',
        type : 'POST',
        data : {
               'valor' : $('#data').val()
        },
    });
}); 

我将 AJAX 更改为:

$(document).on('click','#status li',function(){
    $.ajax({
        url  : 'exemple.php',
        type : 'POST',
        data : {
            'valor': $(this).attr('data')
        },
    });
});

但也不能正常工作。请问有什么办法吗?

【问题讨论】:

  • &lt;li data-something="1"&gt; 然后在 Ajax 中:valor: $(this).data('something'); 更多信息 - api.jquery.com/data
  • @phillip100 不能再工作了!我需要修复这个错误....
  • this 不是你想的那样...

标签: javascript php jquery ajax twitter-bootstrap


【解决方案1】:

data attribute 应该采用如下格式:data-something="foo"
然后使用 jQuery 的.attr()(或.data())方法很容易访问

HTML

<div class="btn-group">
    <button class="btn btn-danger btn-lg dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
    BOTÂO <span class="caret"></span>
    </button>                   
    <ul class="dropdown-menu" role="menu" id="status">
        <li data-something="1"><a href="#">valor 1</a></li>
        <li data-something="2"><a href="#">valor 2</a></li>
    </ul>
</div>

脚本

为了在您的 Ajax 调用中获得服务器响应,您应该添加 success(当事情正常时)和 error(当事情出错时)回调:

$(document).on('click','#status li',function(){
    var dd_val = $(this).attr('data-something');
    $.ajax({
        url     : 'exemple.php',
        type    : 'POST',
        data    : { valor : dd_val},
        success : function(data){
            // do anything with server response when success:
            console.log(data);
        },
        error   : function(jqXHR, textStatus, errorThrown ){
            // do anything when error
            console.log(textStatus + ' ' + errorThrown);
        }
    });
});

Demo

【讨论】:

  • 现在工作正常,但我需要从下拉菜单中选择这个值,然后在发送 AJAX 请求之前在输入文本区域中输入一些文本,所以我用参数和工作也很好,问题是 PHP 页面选择一个或另一个 AJAX 请求,我需要同步 2 个 AJAX 调用。有可能吗?
  • @superuser 是的。只需确保完成了一个请求(您得到了服务器响应),然后处理您的内容并调用下一个 Ajax。由于我没有看到详细信息,因此我无法为您提供更多帮助-您可以制作 jsfiddle。
  • @superuser ,你想用 (doropdown 和 textarea) 值调用单个 ajax 请求吗?
  • 是的,1 个带有下拉列表和文本区域的单个 ajax 请求。当我单击发送到 PHP 的按钮时,两个值都被发送到 PHP 页面以求解数学方程,然后回复被发送回另一个文本区域。更新代码:jsfiddle.net/_Luis_/qxckcwmo/4
猜你喜欢
  • 2015-08-08
  • 2012-07-05
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 2017-09-11
  • 1970-01-01
相关资源
最近更新 更多