Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.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 从AJAX发送的数组中正确提取布尔值_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 从AJAX发送的数组中正确提取布尔值

Javascript 从AJAX发送的数组中正确提取布尔值,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,在我的表单中,有几个字段带有字符串数据,还有一个字段带有布尔值。 预约(字符串) 客户(字符串) 管理_模式(布尔值) 在JS中,我收集表单数据,通过AJAX发送到php,如下所示: var formData = jQuery.parseJSON($('input[name="post_data"]').val()); $appointment = $post_data['appointment']; $customer = $post_data['cu

在我的表单中,有几个字段带有字符串数据,还有一个字段带有布尔值。 预约(字符串) 客户(字符串) 管理_模式(布尔值)

在JS中,我收集表单数据,通过AJAX发送到php,如下所示:

    var formData = jQuery.parseJSON($('input[name="post_data"]').val());
        $appointment = $post_data['appointment'];
        $customer = $post_data['customer'];
        $manage_mode = $post_data['manage_mode'];
如果manage mode为false,如果我在控制台中对此进行检查,这将通过AJAX发送所有字符串数据,我会看到--
“manage_mode”:false
这是意料之中的

在php方面,我尝试使用以下方法提取数据:

    var formData = jQuery.parseJSON($('input[name="post_data"]').val());
        $appointment = $post_data['appointment'];
        $customer = $post_data['customer'];
        $manage_mode = $post_data['manage_mode'];
appointment和customer中的所有字符串数据都已正确处理,我能够按预期使用它。但是布尔函数不能正常工作。假被解读为真。我必须在php端以不同的方式处理它吗

我假设在PHP端,布尔值被视为一个字符串,因为不管怎样,它都被处理为true。如何解决此问题?

请尝试:
警报(formData.manage_模式)

formData应该是您可以相应地访问信息的对象

我假设在PHP端,布尔值被视为一个字符串,因为不管怎样,它都被处理为true

当然是这样
非常简单的解决方案是将
true
|
false
字符串转换为
true
|
false
布尔值:

$manage_mode = $post_data['manage_mode'] == 'true' ? TRUE : FALSE;
如果您不能完全确定JSON源代码中的内容,您可能会更安全,如下所示:

switch ($post_data['manage_mode']) {
  case 'true': $manage_mode = TRUE; break;
  case 'false': $manage_mode = FALSE; break;
  default:
    // depends on what better matches your needs outside of this:
    // . simply FALSE
    // . FALSE and throw an error
    // ...
}
这项工作:

$manage_mode = filter_var ($post_data['manage_mode'], FILTER_VALIDATE_BOOLEAN);

在PHP上执行
var\u dump
,检查传递的值,然后将其发布到您的问题中。