将循环中的变量值传递给jquery函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将循环中的变量值传递给jquery函数相关的知识,希望对你有一定的参考价值。

我有一些循环使用来自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”来保存,依此类推......

答案

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

另一答案

问题是您的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的任何引用,所以我假设它在我上面使用它之前填充了某个地方。

以上是关于将循环中的变量值传递给jquery函数的主要内容,如果未能解决你的问题,请参考以下文章

Django Templates — 将模板中的变量值传递给 templatetags 过滤器

JavaScript,当变量作为参数传递时更改函数内部的变量值[重复]

java中引用传递和值传递的理解

通过单击鼠标将变量值传递给java中的servlet

php值传递和引用传递的区别

Dart是值传递还是引用传递