Передача значения переменной из цикла php while в функцию jquery - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть цикл с использованием данных из SQlite db, а затем я показываю все эти данные с помощью начальной загрузки ul / li и данных из базы данных.

Код выглядит примерно так (без открытия и закрытия тегов php):

$results = $db->query("SELECT * FROM igre WHERE cat = 'slot'");
<div class="container-fluid">
<div class="row">
while($row=$results->fetchArray(SQLITE3_ASSOC)){
$game= $row['kod'];

<div class="gallery_product col-xs-6 col-sm-4 col-md-2 col-lg-2">
<span onclick="spremi()">

<i class="fas fa-star fav-icon"></i></span><a href="#" class="tranzicija zacrni"><img src="sample.jpeg"></a>

</div>

 } 

</div>
    </div>

Я определил переменную как $ game = $ row ['kod'];и это прекрасно работает в этом цикле, но проблема заключается в том, что когда я пытаюсь использовать это значение переменной в функции jquery, которую я использую для хранения данных.

Функция, которую я использую для хранения данных, только по щелчку (spremi) getзначение из последней записи, а не из записи, по которой я щелкнул:

<script>
function spremi(){
    $korisnik = "<?php echo $uid;?>";
    $kod = "<?php echo $game;?>";
    $.ajax({
        url: "prihvati.php",
        data: {korisnik : $korisnik, igra : $kod},
        type: "GET",
        dataType: "json",
        //on success
        success: function(data){
        },
        error: function(){
        }
    });
}

Мне нужна эта функция, чтобы она работала нормально для каждой записи, например, если игра "ABC", чтобы прочитать этоиз переменной $ game, или вторая игра - "TRZ", чтобы сохранить это, и так далее ...

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Проблема в том, что ваш код Javascript находится за пределами цикла while.Таким образом, вы просто записываете последнее значение, которое имели эти переменные, когда цикл завершился.

Вы можете исправить это, разрешив вашей функции JavaScript принимать эти значения в качестве входных параметров и вызывая функцию (которая создаетсяв цикле) передать соответствующие значения в:

PHP / HTML

$results = $db->query("SELECT * FROM igre WHERE cat = 'slot'");

<div class="container-fluid">
<div class="row">

while($row=$results->fetchArray(SQLITE3_ASSOC)) {
  $game = $row['kod'];

  <div class="gallery_product col-xs-6 col-sm-4 col-md-2 col-lg-2">
  <span onclick="spremi('<?php echo $uid;?>', '<?php echo $game;?>')">

  <i class="fas fa-star fav-icon"></i></span><a href="#" class="tranzicija zacrni"><img src="sample.jpeg"></a>

</div>
} 
</div>
</div>

JavaScript:

function spremi(korisnik, kod) {
   $.ajax({
        url: "prihvati.php",
        data: { korisnik : korisnik, igra : kod},
        type: "GET",
        dataType: "json",
        //on success
        success: function(data){
        },
        error: function(){
        }
    });
}

NB. В исходном коде PHP вы не включали никакихссылка на $uid, поэтому я предположил, что он где-то заполнен до того, как я использовал его выше.

0 голосов
/ 27 февраля 2019

Передайте игровую переменную в функцию javascript:

...
<span onclick="spremi('<?=$game?>')">
...

, а затем используйте ее в функции spremi.

function spremi(game){
    $.ajax({
        url: "prihvati.php",
        data: {korisnik : "<?=$uid?>", igra : game},
        type: "GET",
        dataType: "json",
        //on success
        success: function(data){
        },
        error: function(){
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...