仅从表中提醒第一个产品代码?

时间:2015-09-15 15:03:40

标签: javascript php html

所以,我有一个表从数据库表中发出数据。

    //Display the simplex table
    echo "<div id='simptable'>";
    $sqlGet = "SELECT * FROM simplex_list";

    //Grab data from database
    $sqlSimplex = mysqli_query($connect , $sqlGet)or die("Error retrieving data!");

    //Loop to display all records on webpage in a table
    echo "<table>";
    echo "<tr><th>Product Code</th><th>Description</th><th>Quantity</th></tr>";
    while ($row = mysqli_fetch_array($sqlSimplex , MYSQLI_ASSOC)) {
        echo "<tr><td>";
        echo "<input type='text' id='sim' value='".$row['s_code']."' readonly>";
        echo "</td><td>";
        echo $row['description'];
        echo "</td>";
        echo "<input type='hidden' id='com' name='complexcode' value='$newProductID'>";
        echo "<td>";
        echo "<input type='text' size='7' id='userqty'>";
        echo "</td><td>";
        echo "<input type='button'  onclick='addthis()' value='Add!'>";
        echo "</td></tr>";  
    }
    echo "</table>";
    echo "</div>";

当用户点击“添加”按钮时,我会尝试提醒“产品代码”....

function addthis() {
      var scode = $('#sim').val();
            alert(scode);   
    }

问题是它只会警告表格中的第一个产品代码。从第1行开始。

示例:

产品代码名称更多
123玩具'添加'
321食物'添加'
555笔'添加'

因此,如果我点击“添加”获取食物或笔,它仍然会提示123 ..

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

  

ID必须是唯一的。

您可以执行以下操作。在onclick函数中添加参数。哪一行是ID行。

echo "<input type='button'  onclick='addthis(".$row['s_code'].")' value='Add!'>";
                                                 ^^^

上面代码中添加的参数。现在javascript函数可以是:

function addthis(scope) {
  alert(scode);   
}

答案 1 :(得分:0)

正如我在评论中所述,您输入的ID必须是唯一的。您当前正在为数据结果中的循环中的每个输入分配“sim”作为ID。

解决此问题的一种方法:

$i = 0;
echo "<input type='text' id='sim" .  $i ."' value='".$row['s_code']."' readonly>";

然后使用相同的增量器向您的按钮添加一个unqiue id:

echo "<input type='button'  id='btn" . $i . "' value='Add!'>";
$i++;  //then increment

请注意,按钮和输入在其ID的末尾具有相同的编号。您可以使用它来解析按钮的id并使用它来查找输入。 将click事件与:

联系起来
$(document).on('click', '[id^="btn"]', function() {
     var id = $(this).attr('id').split('btn')[1];
     var val = $('#sim' + id).val();
     console.log(val);
     //do other stuff
});

更新: JSFiddle