【问题标题】:Using jquery and ajax to call a php file to load data into multiple divs使用jquery和ajax调用php文件将数据加载到多个div中
【发布时间】:2021-07-25 01:06:23
【问题描述】:

感谢您点击这个问题,我正在尝试添加一个新功能,每当我点击一个按钮时,它都会将多行项目加载到一个 div 中。

这是我的 div 代码

<div id="add_items_row"></div>

这是按钮

<div class="col-sm-2 add_items">
   <button 
    type="button" id="add_items" name="add_items" class="btn btn-primary" 
    onclick="add_items()"> <?php echo $add_items_btn; ?>
   </button>
 </div>

这是函数

function add_items() {
  if (window.XMLHttpRequest) {
      xmlhttp = new XMLHttpRequest();
  } else {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange = function () {
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
          txt = xmlhttp.responseText;
          $(txt).clone().prependTo( "#add_items_row");
      }
  }
  xmlhttp.open("GET", "../php/add_items.php");
  xmlhttp.send();
}

这是我的 add_items.php 文件中的代码

    $sql = mysqli_query($conn, "SELECT id, item_name, item_qty FROM inventory WHERE active = 1");
    while($row = mysqli_fetch_array($sql)){
      $item_id = $row['id'];
      $item_name = $row['item_name'];
      $item_qty = $row['item_qty'];
    }

    $display_row = '
      <div class="col-md-4">
         <input type="hidden" class="small form-control" name="item_id[]" value="'.$item_id .'">
         <input type="text" class="small form-control" name="item_name[] readonly value="'.$item_name .'">
         <input type="text" class="small form-control" name="item_qty[] readonly value="'.$item_qty .'">
      </div>
   ';

   echo $display_row;

SQL 语句在我的数据库中运行,它返回多行,但是在页面本身上它只是将一项添加到 add_items_row div 中。

另外,当我打开 add_items.php 页面时,它也只显示一项。

我怀疑问题出在我的 add_items.php 文件或函数中。 感谢那些阅读我的问题的人,我是编程新手,任何见解或建议都会帮助我。

【问题讨论】:

  • 你试过用mysql_fetch_assoc($sql)代替mysqli_fetch_array($sql)吗?
  • 嗨,在 while 循环中移动 $display_row = '&lt;div class="col.. 行。另外,在此处添加. 以连接结果$display_row .=
  • @Anthony - 我同意使用该函数更有意义,但在这种情况下它不应该改变任何东西,因为mysqli_fetch_array() 默认返回 assoc 和数字索引。跨度>
  • 您尝试过什么解决问题的方法?这是 PHP 问题(数据没有在服务器上正确生成),还是 JS 问题(数据没有在浏览器中正确处理)?
  • 嗨 @NicoHaase 起初我不确定问题出在哪里,但由于 Swati 的建议,我现在设法解决了它。最后,正如我所怀疑的那样,这是一个 PHP 问题。我只需要连接并包含 $display_row .= '

标签: javascript php html mysqli


【解决方案1】:

我将代码更改为这个,并且项目正在显示。

$sql = mysqli_query($conn, "SELECT id, item_name, item_qty FROM inventory WHERE active = 1");
$display_row = '';
while ($row = mysqli_fetch_array($sql)) {
    $item_id = $row['id'];
    $item_name = $row['item_name'];
    $item_qty = $row['item_qty'];

    $display_row .= '
      <div class="col-md-4">
         <input type="hidden" class="small form-control" name="item_id[]" value="' . $item_id . '">
         <input type="text" class="small form-control" name="item_name[] readonly value="' . $item_name . '">
         <input type="text" class="small form-control" name="item_qty[] readonly value="' . $item_qty . '">
      </div>
    ';
}

echo $display_row;

【讨论】:

  • 为了使它成为一个好的答案,请确保答案本身仅包含问题的答案。如果它有一个“这导致了这个问题,我通过做......”而不是“我已经完成了这个但现在我收到了这个错误”,那很好。一旦问题得到解答,理想情况下,您应该在 cmets 中(如果它们很小)或通过提出新问题来跟进新问题。也许更好的是@Swati 将其写为答案,以便您可以通过接受/支持答案来感谢他们。
猜你喜欢
  • 1970-01-01
  • 2011-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
  • 2015-08-16
相关资源
最近更新 更多