2

我的目标:使用 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 
});

问题:我希望每个按钮的每个值属性的值都返回相应的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 中生成的按钮,以便每个按钮的值属性识别从数据库返回的每个唯一值?

4

2 回答 2

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()返回第一个匹配元素的值(根据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 
});
于 2013-08-30T21:35:56.953 回答
1

试试这个代码

while($row = mysqli_fetch_assoc($result)) {
   // Return output
   echo "<button class=\"entry\" value=\".$row["id"].\">" . $row["word"] . "</button>";
}
于 2013-08-30T21:55:46.837 回答