Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
变量获取";“未定义”;在JQUERY函数中_Jquery - Fatal编程技术网

变量获取";“未定义”;在JQUERY函数中

变量获取";“未定义”;在JQUERY函数中,jquery,Jquery,我是webdevelopment和atm的新手,我正在尝试构建一个函数来处理我页面上的所有不同按钮(通过post调用php代码)。 没有开关/case(或if/else)它可以正常工作,但一旦我尝试动态地“加载”Post-action的参数,它就不能正常工作了。当我第二次按下按钮时,它实际上起作用了,这对我来说很奇怪:-)。问题是按钮id突然显示为“未定义” 你能给我一点建议吗 $(document).ready(function() { $(".btn").click(function()

我是webdevelopment和atm的新手,我正在尝试构建一个函数来处理我页面上的所有不同按钮(通过post调用php代码)。 没有开关/case(或if/else)它可以正常工作,但一旦我尝试动态地“加载”Post-action的参数,它就不能正常工作了。当我第二次按下按钮时,它实际上起作用了,这对我来说很奇怪:-)。问题是按钮id突然显示为“未定义” 你能给我一点建议吗

$(document).ready(function() {

$(".btn").click(function()
{
    button_id = $(this).attr("id");
    switch ($(this).attr("id"))
    {
        case "ZXY" :
           php_func_name =  "ABC"
           php_id = "DEF"
           break;

        case "XYZ" :
           php_func_name = "HIJ"
           php_id = "KLM"
           break;
    }

    $('#' + button_id).click(function() {
        $.post("php_functions.php", {
            method: php_func_name,
            id: php_id
        }, function(data) {
      $("#test").html(data);
      alert (data);
        });
    });

}); 
});

问题是您正在更改
按钮的功能。请单击
。由于您不知道您的HTML代码,我会将
php\u func\u name
php\u id
数据存储到按钮中的
data-
属性中:

<button id="ZXY" class="btn" data-funcname="ABC" data-id="DEF"></button>
<button id="XYZ" class="btn" data-funcname="HIJ" data-id="KLM"></button>
您从哪里获得按钮id的“未定义”值?顺便说一下,考虑改变这一行:<代码> ButoOnid ID= $(this).Atter(“ID”);
to
var按钮_id=$(this.attr(“id”)。如果没有var,它会将button_id添加到全局
窗口
对象,因此您实际上是在设置
窗口。button_id
。这通常不是你想要的,可能会导致错误。考虑添加另一行之后,定义这些VARS也:<代码> var PHPFROM名称,PHPID;<代码>。因此,这些变量也保持局部性,不会添加到
窗口中。
$(document).ready(function() {
    $('.btn').click(function() {
        $.post("php_functions.php", {
            method: $(this).data('funcname'),
            id: $(this).data('id')
        }, function(data) {
            $("#test").html(data);
            alert (data);
        });
    });
}