如何从php检索布尔值到javascript文件

时间:2017-08-02 11:07:59

标签: javascript php jquery

是否可以从php检索布尔值到javascript?

我想做的只是简单:从php变量$x中检索布尔值到js

  
      
  1. 发送电子邮件时应 true

  2.   
  3. 电子邮件未发送时错误

  4.   

然后使用 javascript 打印相应的消息

我的工作完整代码here,就我昨天开的另一个案例

而言

PHP:

if (!$mail->send()) {
   $x = false; //when email is not sent
} else {
    $x = true; //when email is sent
}

JS Pseudocode

.done(function (data) {
    if(php Boolean variable is false) { 
        ("$formText").html("Message sent");
    } else (if php Boolean variable is true) {
        ("$formText").html("Message not sent");
    }
});

3 个答案:

答案 0 :(得分:1)

我假设您已经传递数据(通过AJAX),您只是不知道如何编码。

使用:json_encode()

PHP:

if (!$mail->send()) {
$x = true;

} else {
 $x = false;
}
header("Content-type: application/json");
echo json_encode(array('x'=>$x));

使用Javascript:

 .done(function (data) {
           if (data.x) { 
               $("#formText").html("Message sent");
           } else {
               $("#formText").html("Message not sent");
           }
        } //end function data      
  );//end done function

答案 1 :(得分:0)

从PHP代码返回bool值时使用json_encode()。它从本机PHP类型转换为本机Javascript类型。

http://php.net/manual/en/function.json-encode.php

答案 2 :(得分:0)

使用响应代码并使用完成和失败处理它们

PHP

<?php
  // ...

  $success = '{"message": "your mail is send"}';
  $error = '{"message": "failed sending mail"}';

  $code;
  $out;
  if(mailSend){
    $code = 200;
    $out = $success;
  } else {
    $code = 400;
    $out = $error;
  }

  http_response_code($code);
  echo $out;

JS

// ...
var data = 'yourData';

$.ajax({
  url: 'yourApiUrl'M,
  data: data,
  method: 'POST',
  xhrFields: {withCredentials: true},
  crossDomain: true,
  dataType: 'json'
}).done(function() {
  // mail was send
}).fail(function() {
  // error on sending
});

您可以在https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

上找到的状态代码列表