jQuery / ajax按钮单击使用变量

时间:2016-12-30 05:25:21

标签: javascript jquery ajax

我想使用jQuery / Ajax实现一个简单的网页。 我有3个按钮,每个按钮将使用ajax调用从服务器获取不同的文件。唯一的区别是每个按钮都有不同的类名,并调用不同的文件。其他所有内容,例如加载时间,加载图标,成功/失败消息,都是相同的。因此,我只想写一个ajax函数,而不是3.

我有:

<script>
$(document).ready(function(){
    $(".button1").click(function(){
        $.ajax({
            url: "button1.txt", 
            /*more code*/
        });
    });
});
</script>

我想创建另一个函数,以便这个“button1”和“button1.txt”将成为一个变量,并且从函数返回的任何内容都将在ajax函数中使用,这样我就可以重用ajax函数3次。 你怎么能做到这一点?

6 个答案:

答案 0 :(得分:2)

您需要在所有三个按钮上设置网址,如

<button class='button1' data-url='button1.txt'>button 1</button>
<button class='button2' data-url='button2.txt'>button 2</button>
<button class='button3' data-url='button3.txt'>button 3</button>

在你的ajax之后。

<script>
$(document).ready(function(){
$(".button1, .button2, .button3").click(function(){
var url = $(this).attr('data-url');
    $.ajax({
        url: url", 
        /*more code*/
    });
});
});

答案 1 :(得分:0)

只需在点击事件中添加按钮

<script>
   $(document).ready(function(){
     $(".button1, .button2 , .button3").click(function(){
        $.ajax({
            url: "button1.txt", 
            /*more code*/
        });
      });
    });
</script>

2:

在html中添加点击onclik事件

答案 2 :(得分:0)

编辑使用数据属性,例如名为data-url的属性,在点击事件中获取

为所有按钮提供相同的类名。 检索按钮的值,并将它们传递给ajax调用

<script>
$(document).ready(function(){
    $(".buttonClass").click(function(){
        //var value = $(this).attr("value");
     var dataUrl = $(this).attr('data-url');
        $.ajax({
            url: dataUrl, 
            /*more code*/
        });
    });
});
</script>

答案 3 :(得分:0)

您可以使用data-*带前缀的自定义属性来存储要在$.ajax()功能中访问的文件。您可以使用公共类来附加事件处理程序。

HTML

<button class="button" filename="button1.txt"></button>
<button class="button" filename="button2.txt"></button>
<button class="button" filename="button3.txt"></button>

可以使用Element.dataset属性或jQuery的.data()方法获取FileName。

脚本

$(".button").click(function(){
    var fileName = this.dataset.filename;
    $.ajax({
        url: fileName, 
        /*more code*/
    });
});

答案 4 :(得分:0)

试试这个

$stmt = $mysqli->prepare("SELECT user_email FROM tbl_users WHERE user_email = ?");
        $stmt->bind_param('s', $email);
        $stmt->execute();
        $stmt->bind_result($eid);
        while ($stmt->fetch()) {
           echo $email.'='.$eid.'<br>';
        }
        $stmt->close();
        if(isset($eid)){

答案 5 :(得分:0)

我想一个普通的类名就足够了。虽然你需要在你的按钮上有一些ID不同,但它不是必需的。在这种情况下可以使用this

我认为这可以通过将ajax放入参数化函数来完成:

function myAjaxCall(){
    var url = this.textContent.trim().toLowerCase()+'.txt';

    $.ajax({
        url: url, 
        /*more code*/
    });
}

$(document).ready(function(){
    $(".button").click(myAjaxCall);
});

考虑这样的按钮:

<button class='button'>Button1</button>
<button class='button'>Button2</button>
<button class='button'>Button3</button>