从 post js 向 php 发送空值

Sending null values to php from post js

我正在尝试将从数据表中获取的值发送到 php 文件,但发送的是空值 return 来自 php

的空值

这是我试过的方法

    document.addEventListener("DOMContentLoaded", function(event) {
  
    const allButtons = document.querySelectorAll('#tablaUnidades td button');

      allButtons.forEach(function(elem) {
       elem.addEventListener("click", (e)=> {
        e.preventDefault();
    
      var allCells = elem.parentNode.parentNode.cells;

      codigo = allCells[0].textContent;
      deslar = allCells[1].textContent;
      descor = allCells[2].textContent;
      opcion = allCells[3].textContent; 

      console.log(codigo,deslar,descor,opcion);

        fetch('bd/crud_unidades.php',{
        method: "POST",
        data: {codigo, deslar, descor, opcion}
 
    })
        .then(res=>res.text())
        .then(data=>{
            console.log(data);
    }) 
    });
    });
    });
                                <table class="table table-bordered" id="tablaUnidades" width="100%" cellspacing="0" method="post">
                                    <thead>
                                        <tr>
                                            <th>CODIGO</th>
                                            <th>DESCRIPCIÓN LARGA</th>
                                            <th>DESCRIPCIÓN CORTA</th>
                                            <th>ACCIÓN</th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr>
                                            <td id="codigo"> value 1</td>
                                            <td id="deslar"> value 2</td>
                                            <td id="descor">value 3</td>
                                            <td><button class='btn btn-primary btnVER' id="VER" name="VER"> Click Me</button></a></td>
                                        </tr>
                                        <?php
                                        }
                                        ?>
                                    </tbody>
                                </table>

crud_unidades.php :

<?php

$codigo = var_dump($_POST['codigo']);
$deslar = var_dump($_POST['deslar']);
$descor = var_dump($_POST['descor']);
$opcion = var_dump($_POST['opcion']);

echo var_dump($codigo);

?>

现在我不知道如何将 javascript 变量分配给 php 变量以使用 php 变量在我的数据库中查找内容 请帮忙

您的问题根源在于您形成 POST 对象的方式。您没有分配 key/value 对,您只是在创建一个具有值的对象 - 这不是有效对象,我最好 javascript 会引发错误。

您的抓取应该更像这样:

 fetch('bd/crud_unidades.php',{
    method: "POST",
    data: {codigo: codigo, deslar: deslar, descor: descor, opcion: opcion}
   })

按照这些思路,如果您将来更新 table 单元格 html,此行可能会停止工作:

  var allCells = elem.parentNode.parentNode.cells;

相反,请尝试使用 closest(selector),它将在 DOM 树中向上工作,直到找到选择器匹配,例如:

  var allCells = elem.closest('tr').querySelectorAll('td');
    var formData = new FormData;
var arr = {'codigo': codigo, 'deslar': deslar, 'descor': descor, 'opcion': opcion};
 Object.entries(arr).forEach(([key, value]) => {
  formData.append(key,value);
  });
    

fetch('bd/crud_unidades.php',{
method: "POST",
cors: "CROS",
body: formData,
 })

这是正确的方法