【问题标题】:Append mysql query results to a variable将mysql查询结果附加到变量
【发布时间】:2017-12-04 15:53:55
【问题描述】:

我正在执行一个查询,结果作为变量 $result 被获取。

$stmt = $conn->prepare($sql);

$stmt->execute();

$result = $stmt->fetchAll();

数组中有 15 个元素。 0-15。

我想为数组中的每个项目回显一个单选按钮。我想将每个项目分配给单选按钮上的“值”字段(以下是我目前正在做的事情。)

    foreach( $result as $row ) {

         echo '<h4><input type="radio" name="inputWalls" id="radioclick" value="'.$row['batch'].'" >'.$row['batch']. '</h4>'; 

    } 

现在发生的情况是,数组中的所有项目以及它们旁边的所有单选按钮都会打印出来,这正是我想要的。但是,只有第一个单选按钮存储数组中第一个元素的值。

下面是数组的一个var_dump()。

array (size=15)
  0 => 
    array (size=2)
      'batch' => string 'B0002128.RGB' (length=12)
      0 => string 'B0002128.RGB' (length=12)
  1 => 
    array (size=2)
      'batch' => string 'B0002129.RIE' (length=12)
      0 => string 'B0002129.RIE' (length=12)
  2 => 
    array (size=2)
      'batch' => string 'B0002130.RGB' (length=12)
      0 => string 'B0002130.RGB' (length=12)
  3 => 
    array (size=2)
      'batch' => string 'B0002131.RIE' (length=12)
      0 => string 'B0002131.RIE' (length=12)
  4 => 
    array (size=2)
      'batch' => string 'B0002132.RGB' (length=12)
      0 => string 'B0002132.RGB' (length=12)
  5 => 
    array (size=2)
      'batch' => string 'B0002133.RIE' (length=12)
      0 => string 'B0002133.RIE' (length=12)
  6 => 
    array (size=2)
      'batch' => string 'B0002134.RIE' (length=12)
      0 => string 'B0002134.RIE' (length=12)
  7 => 
    array (size=2)
      'batch' => string 'B0002135.RGB' (length=12)
      0 => string 'B0002135.RGB' (length=12)
  8 => 
    array (size=2)
      'batch' => string 'B0002136.RGB' (length=12)
      0 => string 'B0002136.RGB' (length=12)
  9 => 
    array (size=2)
      'batch' => string 'B0002137.RIE' (length=12)
      0 => string 'B0002137.RIE' (length=12)
  10 => 
    array (size=2)
      'batch' => string 'B0002139.RGB' (length=12)
      0 => string 'B0002139.RGB' (length=12)
  11 => 
    array (size=2)
      'batch' => string 'B0002140.RGB' (length=12)
      0 => string 'B0002140.RGB' (length=12)
  12 => 
    array (size=2)
      'batch' => string 'B0002141.RIE' (length=12)
      0 => string 'B0002141.RIE' (length=12)
  13 => 
    array (size=2)
      'batch' => string 'B0002142.RIE' (length=12)
      0 => string 'B0002142.RIE' (length=12)
  14 => 
    array (size=2)
      'batch' => string 'B0002143.RGB' (length=12)
      0 => string 'B0002143.RGB' (length=12)

这是 jquery 代码,它将信息显示为每个单选按钮所包含内容的警报。

$(function(){
    $("#radioclick").click(function() {     
        alert($("input[name=inputWalls]:checked").val());
    });
}); 

当我选择第一个单选按钮时,它显示值 B0002128.RGB,它是数组中的第一个元素。每个其他单选按钮都没有任何价值,因为没有打印任何内容。很长的帖子,但我将不胜感激。

【问题讨论】:

  • 如果batch 值被打印在单选按钮旁边,那么在 value 属性中也是如此,因为您的 PHP 看起来没问题。我认为您的问题是如何验证这一点。展示你如何做到这一点:我选择第一个单选按钮,它显示值»
  • 见上面的 jquery 在帖子的末尾。当我单击单选按钮时,它会将值打印为警报弹出窗口。只有第一个单选按钮会打印出警报。也许jquery代码不正确?

标签: php jquery mysql arrays


【解决方案1】:

不能多次使用同一个id

问题是在循环中使用id="radioclick"

所以$("#radioclick").click(function() { 将在它找到的第一个匹配的id 上触发...但不是全部。

改用class

【讨论】:

  • 哇。就如此容易!立即工作。干杯:)
  • 您也可以将alert($("input[name=inputWalls]:checked").val()); 缩短为alert($(this).val()); ;)
【解决方案2】:

HTML 元素的 ID 必须是唯一的。您为每个 &lt;input&gt; 元素分配了相同的 id,因此当您绑定 click 函数时,它只会绑定到第一个元素。

在 HTML 中使用 class="radioclick" 代替 id="radioclick",在 JS 中使用 $(".radioclick").click 代替 $("#radioclick").click

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    • 2015-07-26
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    相关资源
    最近更新 更多