2016-03-13 2 views
0

Я загружаю булевы данные из mySql. db равно 0 или 1. Однако JSON хочет true или false для правильной загрузки формы. У меня 30 полей в фактической таблице. И да, я могу преобразовать 0 1 в true false в select, используя оператор case. Но должен быть более простой способ сделать это?loadJSON конвертировать boolean в true или false из mysql

У меня есть много булевых полей в фактической продукции. Возможно, JSON не справляется с этим и обрабатывает только обычный тип = «текст»?

В противном случае я могу загрузить все это с PHP и установите значения на нагрузке

Вот оригинальный JSON

[{"drscomplete":"0"}] 

и это то, что мне нужно для флажок, чтобы работать должным образом на форме

[{"drscomplete":"true"}] 

Вот PHP нагрузки

$SQL ="SELECT * from dealfinalize d where d.ID=" . $id; 

    $resultArray = array(); 

    $result = mysqli_query($con,$SQL); 

    if($result->num_rows >0) 
    $resultArray = mysqli_fetch_all($result,MYSQLI_ASSOC); 

echo json_encode ($ resultArray);

и вот Аякса

jQuery.ajax({ 
    url: "dealfinalizeload.php", 
    data:'id='+id, 
    type: "POST", 
    success:function(data){ 

      var data2 = $.parseJSON(data); 
      $('div#white_content_dealfinalize').loadJSON(data2); 

      alert(data); 

    }, 
    error:function(){ 
     alert("Error loading tasks"); 
     } 
    }); 
+1

вы можете использовать MySQL 'случай if' преобразовать '0' и '1' в' 'true' или ложным 'в самом слое базы данных. https://dev.mysql.com/doc/refman/5.7/en/case.html –

+0

Возможно, это не то, что вы ищете, но вы можете написать функцию accept 'getAsBoolean()' сделать ее общей (в общем файле), что принимает значение от mysql (0 или 1) и возвращает true или false на основе простого оператора if и использует этот метод при сериализации JSON, например 'data ['drscomplete'] = getAsBoolean ($ row ['drscomplete']) ', вам нужно использовать это в полях, которые вы уже знаете, это должно быть boolean – Yazan

+0

Я пытался использовать простую команду для загрузки JSON - я добавил нагрузку ajax выше –

ответ

0

Вы можете использовать случай

select t1.column1, 
     case when t2.column == 1 
     then 'true' 
     else 'false' 
     end OrderedAll 
    from yourtable t1 
+0

У меня есть много булевых элементов в производственной БД, которые необходимо загрузить , см. дополнительную информацию выше –

Смежные вопросы