Javascript条件不起作用

时间:2017-03-13 16:43:32

标签: javascript jquery ajax

我的脚本js有点问题,事实上,我使用jQuery将带有ajax的数据发送到PHP文件。我期待一个dataType文本作为回报,我想用Javascript测试。

我的目标是,如果从PHP返回的文本等于“inserted”,我想将用户重定向到另一个网页,否则会出现一个弹出窗口,其中包含从PHP返回的错误消息。

但问题是,即使PHP的响应被“插入”,它也不会将用户重定向到预期的页面,但它会显示一个弹出“插入”作为消息。

这是ajax源代码:

$('#valider').click(function(e) {
  e.preventDefault();

  var form = $('#form-filter').get(0);
  var formData = new FormData(form); // get the form data
  // on envoi formData vers mail.php
  $.ajax({
    type: 'POST', // define the type of HTTP verb we want to use (POST for our form)
    url: 'insert-prescripteur.php', // the url where we want to POST
    data: formData, // our data object
    dataType: 'text', // what type of data do we expect back from the server
    processData: false,
    contentType: false,
    success: function(server_response) {
      if (server_response === "inserted") {
        window.location.href = "page.php";
      } else {
        $('#erreur_inscription').html('<p>' + server_response + '</p>');
        $('#triggerwarning').trigger('click');
        setTimeout(function() {
          $('#ferme').trigger('click');
        }, 4000);
      }
    }, // --> this was missing
    error: function(server_response) {
      alert(server_response);
    }
  });
});

感谢您的回答。

2 个答案:

答案 0 :(得分:0)

我想感谢大家的答案。我找到了我的问题的解决方案,它不是由于javascript而是由PHP返回的文本,而不是“插入”PHP返回“插入”后有两个空格,然后我只是改变了这样的javascript条件:

if(server_response === "inserted  ")

或者替换会更好,但两者都运作良好:

server_response = server_response.replace('  ', '');

    if(server_response === "inserted")
    {
       window.location.replace("page.php");
    }

答案 1 :(得分:-2)

替换server_response ===&#34; inserted&#34;到server_response ==&#34;插入&#34;