Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.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 如何使用angular和php读取布尔值_Javascript_Php_Angularjs_Ajax - Fatal编程技术网

Javascript 如何使用angular和php读取布尔值

Javascript 如何使用angular和php读取布尔值,javascript,php,angularjs,ajax,Javascript,Php,Angularjs,Ajax,我不熟悉Angular和PHP。我正在尝试修改教程。我希望第二个值是一个复选框,并使用Angular和PHP读取其值。我现在遇到的问题是,复选框在单击时读取值,但在未选中时无法输入0,该值为false。我尝试从PHP将布尔值转换为整数,但没有帮助。我的代码如下:对原始教程的更改: index.html <div> <label>Phone</label> <input type="checkbox" ng-model="newPhone"

我不熟悉Angular和PHP。我正在尝试修改教程。我希望第二个值是一个复选框,并使用Angular和PHP读取其值。我现在遇到的问题是,复选框在单击时读取值,但在未选中时无法输入0,该值为false。我尝试从PHP将布尔值转换为整数,但没有帮助。我的代码如下:对原始教程的更改:

index.html

<div>
    <label>Phone</label>
    <input type="checkbox" ng-model="newPhone">
</div>
post.php

<?php
require 'connect.php';

$connect = connect();

// Add the new data to the database.
$postdata = file_get_contents("php://input");
var_dump($postdata);
if(isset($postdata) && !empty($postdata))
{
    $request     = json_decode($postdata);

    $newName  = preg_replace('/[^a-zA-Z ]/','',$request->newName);
    //old code to get number
    //$newPhone = preg_replace('/[^0-9 ]/','',$request->newPhone);
    //new code to get boolean converted to int
    $newPhone = (int)$request->newPhone;

    if($newName  == '' || $newPhone == '') return;

    $sql = "INSERT INTO `people`(`name`, `phone`) VALUES ('$newName','$newPhone')";

    mysqli_query($connect,$sql);
}
exit;
感谢您的帮助

使用“断开到断开”IF条件或for循环

返回用于函数的情况

另一种干净的方法是扭转您的状况,即仅在两个值都存在时更新

if(!empty($newName) && !empty($newPhone))
{
    $sql = "INSERT INTO `people`(`name`, `phone`) VALUES ('$newName','$newPhone')";

    mysqli_query($connect,$sql);
}
将检查空值和空值

更新

若要在用户未选择值的情况下插入空白值或0值,请删除检查空白值的条件,然后按下面的操作

if(isset($postdata) && !empty($postdata))
{
    $request     = json_decode($postdata);

    $newName  = preg_replace('/[^a-zA-Z ]/','',$request->newName);

    // Assign blank value in case its empty
    $newName = !empty($newName) ? $newName: '';

    $newPhone = (int)$request->newPhone;

    // Assign blank value in case its empty
    $newPhone = !empty($newPhone) ? $newPhone : '';

    $sql = "INSERT INTO `people`(`name`, `phone`) VALUES ('$newName','$newPhone')";

    mysqli_query($connect,$sql);
}

谢谢你的回复。两种方法我都试过了,但都没有达到我的目的。我想在用户未单击复选框(即没有电话)时将0、null或false插入数据库。我尝试了类似的操作,但也不起作用:$newPhone=int$request->newPhone;如果空$newName&&$newPhone==0{$sql=INSERT-INTO-peoplename,phone值'$newName',0;mysqli_query$connect,$sql;}我尝试了您更新的帖子,但它不起作用。它仍然处理选中的值,但不是空的或未选中的值:然后就出现了如何获取复选框值的问题。好的,我会检查它。
if(isset($postdata) && !empty($postdata))
{
    $request     = json_decode($postdata);

    $newName  = preg_replace('/[^a-zA-Z ]/','',$request->newName);

    // Assign blank value in case its empty
    $newName = !empty($newName) ? $newName: '';

    $newPhone = (int)$request->newPhone;

    // Assign blank value in case its empty
    $newPhone = !empty($newPhone) ? $newPhone : '';

    $sql = "INSERT INTO `people`(`name`, `phone`) VALUES ('$newName','$newPhone')";

    mysqli_query($connect,$sql);
}