Получить переменную PHP Значение элемента HTMl, используя Jquery внутри цикла

0

У меня странная проблема. Я получаю значения таблицы, используя 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>

Проблема в том, что я получаю только последний идентификатор сообщения как alert() для каждого сообщения, а не для получения другого идентификатора. Пожалуйста, помогите мне. Я смущен, загружается ли PHP-скрипт каждый раз, когда я нажимаю и вызываю функцию justsomething().

Примечание. Я могу отображать $ post_id каждого сообщения без каких-либо проблем.

  • 0
    Пожалуйста, покажите цикл while.
  • 0
    <? php $ array_size = sizeof ($ posts_array); for ($ i = 0; $ i <$ array_size; $ i ++) {} Внутри этого цикла я поместил приведенные выше коды. Я сохранил результаты от fetch_assoc () в массив "$ posts_array" и отображаю его с помощью цикла for. ?>
Показать ещё 4 комментария

3 ответа

1
Лучший ответ

Beacuse 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);' />
  • 1
    Что this ?
  • 0
    элемент нажал увидеть это
Показать ещё 10 комментариев
0

Он работает для цикла, надеюсь, вы сможете его использовать

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

Он будет предупреждать значения из каждого <input id="like"...

  • 0
    Благодарю . Конечно, можете использовать это.
-1

Попробуйте этот код:

onclick='justsomething(this)'

function justsomething(obj) {
        alert($(obj).val());
    }
  • 0
    this зарезервированное ключевое слово
  • 0
    я отредактировал свой ответ, пожалуйста, проверьте это
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню