我有一个奇怪的问题。我使用PHP MySQL使用PHP循环获取表值并将它们存储在数组中。然后我在一个页面中一个接一个地显示它。
$sql = "select * from newsfeed order by id DESC";
$result = $db->query($sql);
$posts_array = array(); // Storing the result to an Custom Array
$index = 0;
if($result->num_rows > 0)
{
while($row = $result->fetch_assoc()) {
$posts_array[$index] = $row;
$index++;
}
}
我已使用以下代码成功将帖子的$ post_id设置为HTML元素。
<?php
$array_size = sizeof($posts_array);
for($i = 0; $i < $array_size; $i++){
?>
<div class='wrapper' id='wrapper'>
<div class='user'>
<!-- Some Code -->
<?php
$post_id = $posts_array[$i][id];
?>
<input type='image' name='like' id='like' width='40' height='40' src='like_btn.png' value='<?php echo ($post_id);'?> />
<?php } ?>
现在我想使用Jquery获取该值并执行一些数据库工作。我使用以下代码访问了该值:
<script type="text/javascript">
function justsomething() {
alert($(this).val());
}
</script>
问题是我只是将每个帖子的最后一个帖子的id作为alert()而不是获得不同的id。 请帮我。我很困惑每次点击并调用justsomething()函数时是否加载PHP脚本。
注意:我可以单独显示每个帖子的$ post_id而没有任何问题。
答案 0 :(得分:1)
因为id
对于一个html元素应该是唯一的,请尝试将代码更改为:
<?php $array_size = sizeof($posts_array); for($i = 0; $i < $array_size; $i++){ ?>
<input type='image' name='like_<?php echo $i ?>' id='like_<?php echo $i ?>' width='40' height='40' src='like_btn.png' value='<?php echo $post_id;?>' onclick='justsomething(this);' />
<?php } ?>
<script>
function justsomething(el) {
var img = el;
alert(img.value);
}
</script>
这是一个例子
function justsomething(el) {
var img = el;
alert(img.value);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='image' name='like_1' id='like_1' width='40' height='40' src='like_btn.png' value='15454' onclick='justsomething(this);' />
&#13;
答案 1 :(得分:0)
它适用于循环,我希望你可以使用它
$(&#34;输入[ID =等]&#34)。每一(功能(I){ 警报($(本).VAL()); });
它会提醒每个$dir = "pages";
if ($d = scandir($dir)) {
foreach ($d as $value) {
echo("<script>console.log(\"$value\")</script>");
if (is_file($value)) {
echo("<p><a href=\"$dir/$value\">$value</a></p>");
} else {
echo("");
}
}
}
答案 2 :(得分:-1)
试试这段代码:
onclick='justsomething(this)'
function justsomething(obj) {
alert($(obj).val());
}