【问题标题】:Retrieve The PHP variable Value of a HTMl Element Using Jquery inside a Loop在循环中使用 Jquery 检索 HTMl 元素的 PHP 变量值
【发布时间】:2018-01-14 08:43:48
【问题描述】:

我有一个奇怪的问题。我使用 PHP MySQL 使用 while 循环获取表值并将它们存储在数组中。然后我在一个页面中一个接一个地显示它。

    $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 没有任何问题。

【问题讨论】:

  • 请显示while循环。
  • 您是在循环内创建函数吗?提供minimal reproducible example
  • 评论里的代码是怎么关联的?请显示上面提到的 while 循环,它会为 $post_id 创建值。不过,看起来您会有多个具有相同值的ids。你不应该。
  • 不要将代码块放入 cmets。使用格式化代码编辑问题

标签: javascript php jquery html mysql


【解决方案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);
   }
<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);' />

【讨论】:

  • 什么是this
  • 被点击的元素see this
  • 不,不是。 onclick 函数没有隐式 this
  • @charlietfl 查看答案 onclick attr 将元素发送到函数
  • 是的,我试过 $(this).val() 但它没有调用 alert();
【解决方案2】:

它适用于循环,我希望你可以使用它

$("input[id=like]").each(function(i){ 警报($(this).val()); });

它会提醒来自每个&lt;input id="like"...的值

【讨论】:

  • 谢谢。一定可以利用。
【解决方案3】:

试试这个代码:

onclick='justsomething(this)'

function justsomething(obj) {
        alert($(obj).val());
    }

【讨论】:

  • this 是保留关键字
  • @Hasan llyas 感谢您的回答。
猜你喜欢
  • 2016-10-04
  • 1970-01-01
  • 2017-05-10
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多