Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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
Javascript SweetAlert:第二个参数(“未定义”)无效_Javascript_Jquery_Ajax_Sweetalert - Fatal编程技术网

Javascript SweetAlert:第二个参数(“未定义”)无效

Javascript SweetAlert:第二个参数(“未定义”)无效,javascript,jquery,ajax,sweetalert,Javascript,Jquery,Ajax,Sweetalert,我正在使用php、jquery和ajax来设计和开发我的网站。问题是在一个页面上,我想使用sweet警报通过ajax和php插入一条记录。我希望用户按下sweet alert的yes按钮来执行插入php。当我检查控制台时,记录没有插入,它给了我一个错误 我的项目是本地设计的,这就是为什么我没有使用cdn。相反,所有JavaScript和css文件都在我的项目目录中。我没有导入它们,而是将cdn url粘贴到搜索框中,然后复制/粘贴出来的内容。甜警报也是如此 这是ajax和sweet警报代码: s

我正在使用php、jquery和ajax来设计和开发我的网站。问题是在一个页面上,我想使用sweet警报通过ajax和php插入一条记录。我希望用户按下sweet alert的yes按钮来执行插入php。当我检查控制台时,记录没有插入,它给了我一个错误

我的项目是本地设计的,这就是为什么我没有使用cdn。相反,所有JavaScript和css文件都在我的项目目录中。我没有导入它们,而是将cdn url粘贴到搜索框中,然后复制/粘贴出来的内容。甜警报也是如此

这是ajax和sweet警报代码:

swal("", "Do you really want to create this project?", "warning", {
      buttons : {
             confirm : "Yes",
             cancel : "No"
                 }
      })
        .then((value) => {
           switch (value) {
               case true :
                   $.ajax({
                       type: "POST",
                       url: "customer.php",
                       data: {"Name":name, "Descpt":descpt, "Category":category, "Skills":skills},
                       dataType: 'JSON',
                       success: function(feedback) {
                          if (feedback.status === "success")
                          {
                            swal("", feedback.message, "success", {buttons : false});
                          }
                          else
                          {
                            swal("Fatal error occurred", feedback.message, "error", {buttons : false});
                          }
                       },
                       error: function(feedback) {
                          swal("Fatal error occurred", feedback.message, "error", {buttons : false});
                                  }
                         });
                         break;                                
                  }
        });
这就是它给我的错误:

未捕获的SweetAlert:第二个参数“未定义”无效

它们也是另一种形式,我在其中执行了相同的操作,仅当用户在sweet alert上按yes时才插入一条记录,而且效果非常好。我不知道这个错误是什么。我甚至复制并粘贴了我之前在另一个页面中使用的sweet警报代码,但仍然出现了相同的错误

在跟踪sweet alert文件后,我找到了这一行,它实际上给了我一个问题:

e.throwErr = function(t) {
            throw t = t.replace(/ +(?= )/g, ""),
            "SweetAlert: " + (t = t.trim())
        }
我还可以给你看一个对我来说非常有效的罐子。希望你能发现其中的差异:

swal("Registering Without Email", "Are you sure that you want to register your account without providing the email?", "warning", {
                    buttons : {
                        confirm : "Yes",
                        cancel : "No"
                    }
                })
                .then((value) => {
                    switch (value) {
                        case true :
                                workEmail = "no email";
                                $.ajax({
                                    type : "POST",
                                    url : "register_worker.php",
                                    data : {"name":workName, "email":workEmail, 'password':workPassword, "contact":workPhone, "address":workAddress, "nic":workNic},
                                    dataType : 'JSON',
                                    success : function(feedback) {
                                        if (feedback.status === "success")
                                        {
                                            window.location = "/Dashboard";
                                        }
                                        else if (feedback.status === "error")
                                        {
                                            swal("", feedback.message, "error");
                                        }
                                        else
                                        {
                                            alert('error occurred ' + feedback.message);
                                        }
                                    },
                                    error : function(feedback) {
                                        alert ('Unknown error occurred ' + feedback.message);
                                    }
                                });
                                break;                                
                    }
                });

请帮助…

此错误可能是从promise中的swal函数引发的。未设置feedback.message,这将导致sweet alert抱怨“undefined”不是消息正文的有效参数


您的代码没有任何问题,只是希望从服务器端得到一些您没有得到的东西。

最后我知道了错误所在。我无法从选择框中选择值。首先是html代码:

<select class="form-control" id="cateogry" name="category">
                  <option value="0" disabled selected>Choose Project Category</option>
                  <option value="active">Active Project</option>
                  <option value="drafted">Drafted Project</option>
</select>

但是仍然没有成功,请告诉我该怎么做。

使用console.logfeedback查看该对象包含的内容;这可能是问题所在,因为在三个地方,您将feedback.message传递给swal。“我找到了它实际上给我带来问题的那一行”-不,这看起来像是脚本的一部分,在显示错误消息之前对其进行格式化,但与错误实际发生的地方不同…实际上它没有给出任何消息。它甚至不执行succes或error函数。那么我该如何检查错误呢。请告诉我……我想知道这是否是sweet alert支持的语法。我经常使用它,我从未传递过这样的参数,在文档中也找不到。所以有两件事:我知道你可以把三个参数传递给一个swal函数,比如swaltitle、message、messageType。我知道你可以有更多的配置,但是你需要传递一个设置对象和一个函数。您确定您使用的语法有效吗?您使用的是Sweet Alert,还是Sweet Alert 2?@KjetilNordin我提到过,这个具有完全相同swal函数的脚本非常适合另一个php文件。所有的问题都是由这个引起的。好吧,那可能是个问题。仅当它返回success或error函数时。他们在我的php文件中没有错误,该文件假定插入记录,然后返回反馈消息。但是我的php脚本没有正常运行。请看@Pointy对原始问题的评论。成功后立即插入行console.logfeedback:functionfeedback{并让我们知道控制台所说的内容。这将为您和我们提供更多信息。继续探索和添加信息做得很好。但是最好使用此信息更新问题,因为它实际上不是答案。在这里,您的错误可能是您选择的id拼写错误为category而不是category。但是没有任何其他信息,我都很难将此链接到您的原始问题。您的解释有点到处都是。此外,您一直在寻求帮助,但实际上您并没有尝试回答试图帮助您的人提出的一些问题。因此,我将再试一次。让我们知道控制台中的console.logfeedback结果。并告诉我们您是否正在使用sweet alert或sweet alert 2。这些信息对于我们进一步帮助您非常重要。
$(document).ready(function () {
         //First thing i tried
         var category = $('#category').val();

         //Second thing i tried
         var category = $('#category').filter(":selected").val();

         //Third thing i tried
         var category = $('#category').find(":selected").text();

         //Fourth thing i tried
         var category = $('#category').find(":selected").val();
});