从php while循环将变量值传递给jquery函数

时间:2019-02-26 22:00:01

标签: php jquery sqlite

我使用SQlite db中的数据进行了一些循环,然后使用bootstrap 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函数中使用此变量值时。

我用于在onclick(spremi)上存储数据的函数仅从上一条记录获取值,而不是从我单击的记录中获取值:

<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 :(得分:2)

将游戏变量传递给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(){
        }
    });
}

答案 1 :(得分:1)

问题是您的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(){
        }
    });
}

在您的原始PHP代码中,您没有包含对$uid的任何引用,因此在我之前使用它之前,我假设它已填充在某处。