首页 > 解决方案 > 将变量从 PHP 传递到 js 时出错

问题描述

我在我的数据库中进行了几次选择并将结果转换为一个对象,然后我想将变量传递给一个 js 文件,但这总是一个错误。如果我在发送变量之前对变量执行json_encode() ,则变量为空,不向 js 文件传递​​任何内容。但是,如果我从变量中删除json_encode()并制作console.log() ,则会出现Array () {[native code]}。当我在 localhost 上运行时,它运行良好,但是当我切换到 Web 托管服务器时,它停止工作并开始出现错误。如果有人知道我如何解决这个问题,我真的很感激!

<!DOCTYPE html>
<?php
$numMax = 10; // numero de mesas do restaurante
$mysqli = new mysqli("***","***","***","***");

// Check connection
if ($mysqli -> connect_errno) {
  echo '<script type="text/javascript">console.log("Database failed")</script>';
  header("Refresh:0");
}

$sql = "SELECT * FROM ingredientes";
$i = 0;
if ($result = $mysqli -> query($sql)) {
  while ($obj = $result -> fetch_object()) {
    $ingredientes[$i]['id'] = $obj->id;
    $ingredientes[$i++]['nome'] = $obj->nome;
  }
  $result -> free_result();
}

$sql = "SELECT * FROM pratos";
$i = 0;
if ($result = $mysqli -> query($sql)) {
  while ($obj = $result -> fetch_object()) {
    $pratos[$i]['id'] = $obj->id;
    $pratos[$i]['idName'] = $obj->idName;
    $pratos[$i]['name'] = $obj->name;
    $pratos[$i]['path'] = $obj->path;
    $pratos[$i]['scale'] = $obj->scale;
    $pratos[$i]['escolhido'] = $obj->escolhido;
    $pratos[$i++]['preco'] = $obj->preco;
  }
  $result -> free_result();
}

$sql = "SELECT * FROM prato_ingredientes";
$i = 0;
if ($result = $mysqli-> query($sql)) {
  while ($obj = $result -> fetch_object()) {
    $prato_ingredientes[$i]['idPrato'] = $obj->idPrato;
    $prato_ingredientes[$i++]['idIngredientes'] = $obj->idIngredientes;
  }
  $result -> free_result();
}
$resultado['ingredientes'] = $ingredientes;
$resultado['pratos'] = $pratos;
$resultado['prato_ingredientes'] = $prato_ingredientes;
mysqli_close($mysqli);
?>
<html lang="en">
  <head>
    <link rel="apple-touch-icon" href="./imagens/dimmersions_logo.png">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
    <title>AR Food</title>
    <script src="https://hammerjs.github.io/dist/hammer.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script src="https://aframe.io/releases/0.9.2/aframe.min.js"></script>
    <script src="https://raw.githack.com/jeromeetienne/AR.js/2.0.5/aframe/build/aframe-ar.js"></script>
    <script src="scripts/localforage.js" charset="utf-8"></script>
    <script src="scripts/lodash.js" charset="utf-8"></script>
    <script type="text/javascript">var resultado = '<?= json_encode($resultado); ?>';</script>
    <script src="scripts/scriptIndex.js" charset="utf-8"></script>
    <link rel="stylesheet" type="text/css" href="./style.css">
  </head>
  <body id="body">
    <?php echo json_last_error_msg();  ?>
    <div id="mesaDiv">
      <p class="order">Table Number</p>
      <select class="formMesa" id="mesaId">
        <?php
          for ($i=1; $i <= $numMax; $i++) {
            echo "<option value='".$i."'>".$i."</option>";
          }
        ?>
      </select>
      <button type="button" class="myButton" id="start">Start</button>
    </div>
    <div class="deletePrato"></div>
    <div id="ordersDiv">
      <p class="close" id="closeOrders">X</p>
      <div id="orderButton">
        <p class="order">Order</p>
      </div>
    </div>
    <div id="escondido" hidden="true">
      <div id="swiper"></div>
      <div id="orderDiv">
        <p class="order">Order</p>
      </div>
      <div id="tituloDiv">
        <p id="nameFood"></p>
      </div>
      <img id="loadingGif" alt="loadingGif" src="./imagens/load.gif">
      <div id="swipeDiv">
        <img id="swipeImg" alt="swipeImg" src="./imagens/swipe.png">
        <p id="swipe">Swipe for next dish</p>
      </div>
      <div id="ingredientesBar">
        <p id="seta">↑&lt;/p>
        <p id="ingredientesSwipe">Ingredients</p>
      </div>
      <div id="ingredientsDiv" hidden="true">
        <p class="close" id="closeIngredientes">X</p>
        <ul style="padding: 1em 3em" id="ulIngredientes">
        </ul>
      </div>
    </div>
    <div id="markerInicial">
      <img id="markerOpacidade" alt="markerOpacidade" src="./imagens/pattern-restaurant-menu.png">
      <p id="markerTitulo">Please point to the marker</p>
    </div>
    <a-scene arjs='trackingMethod: best; sourceWidth:1280; sourceHeight:960; debugUIEnabled:false' embedded vr-mode-ui="enabled: false">
      <a-assets id="assets">
      </a-assets>
      <a-marker detect-marker id="marker" preset='custom' type='pattern' url='./markers/pattern-restaurant-menu.patt' smooth="true">
      </a-marker>
      <a-entity camera></a-entity>
    </a-scene>
  </body>
</html>

<script type="text/javascript">var resultado =<?= json_encode($resultado); ?>;</script>

数据输出

array (
  'ingredientes' =&gt; 
  array (
    0 =&gt; 
    array (
      'id' =&gt; '1',
      'nome' =&gt; 'A�ucar',
    ),
    1 =&gt; 
    array (
      'id' =&gt; '2',
      'nome' =&gt; 'Sal',
    ),
    2 =&gt; 
    array (
      'id' =&gt; '3',
      'nome' =&gt; 'Farinha',
    ),
    3 =&gt; 
    array (
      'id' =&gt; '4',
      'nome' =&gt; 'Fermento',
    ),
    4 =&gt; 
    array (
      'id' =&gt; '5',
      'nome' =&gt; 'Lactic�nios',
    ),
    5 =&gt; 
    array (
      'id' =&gt; '6',
      'nome' =&gt; 'Leite',
    ),
    6 =&gt; 
    array (
      'id' =&gt; '7',
      'nome' =&gt; 'Fruta',
    ),
    7 =&gt; 
    array (
      'id' =&gt; '8',
      'nome' =&gt; 'Manteiga',
    ),
    8 =&gt; 
    array (
      'id' =&gt; '9',
      'nome' =&gt; 'Cebola',
    ),
    9 =&gt; 
    array (
      'id' =&gt; '10',
      'nome' =&gt; 'Ovo',
    ),
    10 =&gt; 
    array (
      'id' =&gt; '11',
      'nome' =&gt; 'Nata',
    ),
    11 =&gt; 
    array (
      'id' =&gt; '12',
      'nome' =&gt; 'Chocolate',
    ),
    12 =&gt; 
    array (
      'id' =&gt; '13',
      'nome' =&gt; 'Alho',
    ),
    13 =&gt; 
    array (
      'id' =&gt; '14',
      'nome' =&gt; 'Cenoura',
    ),
    14 =&gt; 
    array (
      'id' =&gt; '15',
      'nome' =&gt; 'Peixe',
    ),
    15 =&gt; 
    array (
      'id' =&gt; '16',
      'nome' =&gt; 'Canela',
    ),
    16 =&gt; 
    array (
      'id' =&gt; '17',
      'nome' =&gt; 'Pimenta',
    ),
    17 =&gt; 
    array (
      'id' =&gt; '18',
      'nome' =&gt; 'Salsa',
    ),
    18 =&gt; 
    array (
      'id' =&gt; '19',
      'nome' =&gt; 'Or�g�os',
    ),
    19 =&gt; 
    array (
      'id' =&gt; '20',
      'nome' =&gt; 'Piment�o',
    ),
  ),
  'pratos' =&gt; 
  array (
    0 =&gt; 
    array (
      'id' =&gt; '1',
      'idName' =&gt; 'sushi',
      'name' =&gt; 'Sushi',
      'path' =&gt; './modelos/sushi/scene.gltf',
      'scale' =&gt; '0.1 0.1 0.1',
      'escolhido' =&gt; '0',
      'preco' =&gt; '24.69',
    ),
    1 =&gt; 
    array (
      'id' =&gt; '2',
      'idName' =&gt; 'burger',
      'name' =&gt; 'Chicken Burger',
      'path' =&gt; './modelos/chicken_burger/scene.gltf',
      'scale' =&gt; '0.12 0.12 0.12',
      'escolhido' =&gt; '0',
      'preco' =&gt; '4.84',
    ),
    2 =&gt; 
    array (
      'id' =&gt; '3',
      'idName' =&gt; 'donut',
      'name' =&gt; 'Donut',
      'path' =&gt; './modelos/donut/scene.gltf',
      'scale' =&gt; '0.4 0.4 0.4',
      'escolhido' =&gt; '1',
      'preco' =&gt; '2.5',
    ),
    3 =&gt; 
    array (
      'id' =&gt; '4',
      'idName' =&gt; 'sobremesa',
      'name' =&gt; 'Milk Pie',
      'path' =&gt; './modelos/sobremesa/scene.gltf',
      'scale' =&gt; '0.08 0.08 0.08',
      'escolhido' =&gt; '0',
      'preco' =&gt; '7.49',
    ),
    4 =&gt; 
    array (
      'id' =&gt; '5',
      'idName' =&gt; 'boloC',
      'name' =&gt; 'Chocolate Cake',
      'path' =&gt; './modelos/bolo_chocolate/scene.gltf',
      'scale' =&gt; '0.08 0.08 0.08',
      'escolhido' =&gt; '0',
      'preco' =&gt; '2',
    ),
    5 =&gt; 
    array (
      'id' =&gt; '6',
      'idName' =&gt; 'boloFV',
      'name' =&gt; 'Red Fruit Cake',
      'path' =&gt; './modelos/bolo_frutos_vermelhos/scene.gltf',
      'scale' =&gt; '0.04 0.04 0.04',
      'escolhido' =&gt; '0',
      'preco' =&gt; '2.5',
    ),
  ),
  'prato_ingredientes' =&gt; 
  array (
    0 =&gt; 
    array (
      'idPrato' =&gt; '5',
      'idIngredientes' =&gt; '12',
    ),
    1 =&gt; 
    array (
      'idPrato' =&gt; '5',
      'idIngredientes' =&gt; '4',
    ),
    2 =&gt; 
    array (
      'idPrato' =&gt; '5',
      'idIngredientes' =&gt; '1',
    ),
    3 =&gt; 
    array (
      'idPrato' =&gt; '5',
      'idIngredientes' =&gt; '3',
    ),
    4 =&gt; 
    array (
      'idPrato' =&gt; '5',
      'idIngredientes' =&gt; '10',
    ),
    5 =&gt; 
    array (
      'idPrato' =&gt; '5',
      'idIngredientes' =&gt; '6',
    ),
    6 =&gt; 
    array (
      'idPrato' =&gt; '6',
      'idIngredientes' =&gt; '1',
    ),
    7 =&gt; 
    array (
      'idPrato' =&gt; '6',
      'idIngredientes' =&gt; '3',
    ),
    8 =&gt; 
    array (
      'idPrato' =&gt; '6',
      'idIngredientes' =&gt; '4',
    ),
    9 =&gt; 
    array (
      'idPrato' =&gt; '6',
      'idIngredientes' =&gt; '6',
    ),
    10 =&gt; 
    array (
      'idPrato' =&gt; '6',
      'idIngredientes' =&gt; '7',
    ),
    11 =&gt; 
    array (
      'idPrato' =&gt; '2',
      'idIngredientes' =&gt; '2',
    ),
    12 =&gt; 
    array (
      'idPrato' =&gt; '2',
      'idIngredientes' =&gt; '3',
    ),
    13 =&gt; 
    array (
      'idPrato' =&gt; '2',
      'idIngredientes' =&gt; '4',
    ),
    14 =&gt; 
    array (
      'idPrato' =&gt; '2',
      'idIngredientes' =&gt; '10',
    ),
    15 =&gt; 
    array (
      'idPrato' =&gt; '2',
      'idIngredientes' =&gt; '12',
    ),
    16 =&gt; 
    array (
      'idPrato' =&gt; '2',
      'idIngredientes' =&gt; '14',
    ),
    17 =&gt; 
    array (
      'idPrato' =&gt; '2',
      'idIngredientes' =&gt; '20',
    ),
    18 =&gt; 
    array (
      'idPrato' =&gt; '4',
      'idIngredientes' =&gt; '1',
    ),
    19 =&gt; 
    array (
      'idPrato' =&gt; '4',
      'idIngredientes' =&gt; '5',
    ),
    20 =&gt; 
    array (
      'idPrato' =&gt; '4',
      'idIngredientes' =&gt; '7',
    ),
    21 =&gt; 
    array (
      'idPrato' =&gt; '4',
      'idIngredientes' =&gt; '11',
    ),
    22 =&gt; 
    array (
      'idPrato' =&gt; '4',
      'idIngredientes' =&gt; '16',
    ),
    23 =&gt; 
    array (
      'idPrato' =&gt; '1',
      'idIngredientes' =&gt; '3',
    ),
    24 =&gt; 
    array (
      'idPrato' =&gt; '1',
      'idIngredientes' =&gt; '5',
    ),
    25 =&gt; 
    array (
      'idPrato' =&gt; '1',
      'idIngredientes' =&gt; '7',
    ),
    26 =&gt; 
    array (
      'idPrato' =&gt; '1',
      'idIngredientes' =&gt; '10',
    ),
    27 =&gt; 
    array (
      'idPrato' =&gt; '1',
      'idIngredientes' =&gt; '13',
    ),
    28 =&gt; 
    array (
      'idPrato' =&gt; '1',
      'idIngredientes' =&gt; '15',
    ),
    29 =&gt; 
    array (
      'idPrato' =&gt; '1',
      'idIngredientes' =&gt; '18',
    ),
    30 =&gt; 
    array (
      'idPrato' =&gt; '20',
      'idIngredientes' =&gt; '2',
    ),
    31 =&gt; 
    array (
      'idPrato' =&gt; '20',
      'idIngredientes' =&gt; '3',
    ),
    32 =&gt; 
    array (
      'idPrato' =&gt; '20',
      'idIngredientes' =&gt; '4',
    ),
    33 =&gt; 
    array (
      'idPrato' =&gt; '20',
      'idIngredientes' =&gt; '8',
    ),
    34 =&gt; 
    array (
      'idPrato' =&gt; '20',
      'idIngredientes' =&gt; '10',
    ),
    35 =&gt; 
    array (
      'idPrato' =&gt; '20',
      'idIngredientes' =&gt; '11',
    ),
    36 =&gt; 
    array (
      'idPrato' =&gt; '20',
      'idIngredientes' =&gt; '12',
    ),
    37 =&gt; 
    array (
      'idPrato' =&gt; '20',
      'idIngredientes' =&gt; '13',
    ),
    38 =&gt; 
    array (
      'idPrato' =&gt; '20',
      'idIngredientes' =&gt; '18',
    ),
    39 =&gt; 
    array (
      'idPrato' =&gt; '3',
      'idIngredientes' =&gt; '1',
    ),
    40 =&gt; 
    array (
      'idPrato' =&gt; '3',
      'idIngredientes' =&gt; '3',
    ),
    41 =&gt; 
    array (
      'idPrato' =&gt; '3',
      'idIngredientes' =&gt; '4',
    ),
    42 =&gt; 
    array (
      'idPrato' =&gt; '3',
      'idIngredientes' =&gt; '8',
    ),
    43 =&gt; 
    array (
      'idPrato' =&gt; '3',
      'idIngredientes' =&gt; '9',
    ),
    44 =&gt; 
    array (
      'idPrato' =&gt; '3',
      'idIngredientes' =&gt; '12',
    ),
  ),
)

您在 localhost 中之前没有发生的特殊字符中给出错误

标签: javascriptphpmysqlvariablesmysqli

解决方案


推荐阅读