所以,我有一个表从数据库表中发出数据。
//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 ..
有什么想法吗?
答案 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