我的目标:使用JQuery和PHP从MySQL数据库中检索单词列表,然后使用从该列表输出的数据(即该列表中每个单词的id)(在按钮的形式)从数据库中提取第二个单词列表。
用于从数据库中检索第一个单词列表的JavaScript代码:
$('#myButton').click(function() {
var myData = $('#myButton').val();
// Pass data to PHP script w/ JQuery AJAX function
$.post("mydata.php", { buttonID: myData }, function(data) {
$('pageSection').append(data);
}
$('pageSection').empty();
});
PHP代码返回数据库中的第一个单词列表(简化为重点关注重要细节):
// Connect to and select database
// Execute SQL query
// Fetch data
while($row = mysqli_fetch_assoc($result)) {
$id = $row["id"]
// Return output
echo "<button class=\"entry\" value=\"$id\">" . $row["word"] . "</button>";
}
使用数据库输出检索第二个单词列表的JavaScript代码:
$('#pageSection').on('click', '.entry', function () {
// Capture data from value property of each outputted PHP button
var value = $('.entry').val();
// Pass value to PHP through AJAX
});
问题:我希望每个按钮的每个value属性的值都返回相应的id。也就是说,对应于数据库中每个单词的id。我在检索id时没有任何问题。我可以用另一种格式输出它,但我无法为每个值获得正确的id。我想得到这些结果:
预期结果:
<button value="id1">Word 1</button>
<button value="id2">Word 2</button>
<button value="id3">Word 3</button>
相反,我得到了这个:
实际结果:
<button value="id1">Word 1</button>
<button value="id1">Word 2</button>
<button value="id1">Word 3</button>
关键问题:有没有办法返回PHP中生成的按钮,以便每个按钮的值属性识别从数据库返回的每个唯一值?
答案 0 :(得分:1)
这与你的jQuery有关,而不是PHP。 PHP 实际输出:
<button value="id1">Word 1</button>
<button value="id2">Word 2</button>
<button value="id3">Word 3</button>
但是,在您的点击处理程序var value = $('.entry').val();
内匹配所有 .entry
元素,val()
返回第一个匹配元素的值(每个the docs)。
相反,请使用$(this)
来定位点击的元素。
$('#pageSection').on('click', '.entry', function () {
// Capture data from value property of each outputted PHP button
var value = $(this).val();
// Pass value to PHP through AJAX
});
答案 1 :(得分:1)
试试这段代码
while($row = mysqli_fetch_assoc($result)) {
// Return output
echo "<button class=\"entry\" value=\".$row["id"].\">" . $row["word"] . "</button>";
}