2017-11-25 138 views
0

我有一个jqm应用程序,我正在努力。我正在查询一个MySQL数据库创建链接,他们不工作。我已阅读并了解到您无法在jq mobile中使用location.search,因此我在我的网站中添加了属性数据链接。php创建的动态链接不工作在jQuery的移动

我有一个cookie与用户ID设置,当用户去查找食谱时,它读取他的cookie获取他的用户ID,然后查询所有与相应的用户ID配方,然后显示它们。

我希望能够点击其中一个创建的链接,转到不同的页面,然后用该链接ID进行查询,并拉出实际的配方。

这里是我用来拉起php文件的js。

$(document).on("pageshow","#retrieve",function(){ 
var uid1 = $.cookie('recuid'); 
var uid = uid1.substr(7); 
var data; 
    var response = ''; 
    $.ajax({ type: "GET", 
      url: "retrieve_recipes.php?userid=" + uid, 
      dataType: "html", 
      async: false, 
      success : function(response) 
      { 
       $("#show_recipe").html(response); 

      } 
    }); 
    }); 

这里是用于创建链接列表的php代码。

<?php 
include_once('../recipe_holder/connect.php'); 
$uid = $_GET['userid']; 
$sql = "SELECT * FROM recipes WHERE userid = '$uid'"; 
$result = mysqli_query($conn, $sql); 
if (mysqli_num_rows($result) > 0) { 
while($row = mysqli_fetch_assoc($result)) { 
echo "<a href='#showRecipe' class='ui-btn' data-link='".$row['uid']."'>".$row['title']."</a> "; 
} 
} else {} 
?> 

这里是我使用,以获得特定配方的UID来查询数据库,并显示数据了jQuery/js代码。我有这个简化,只是简单地显示uid的警报,我想如果我能得到那么多的工作,我可以让剩下的工作。

$('[data-link]').click(function(){ 
var uid = $(this).attr('data-link'); 

alert(uid);  

}); 

任何想法将不胜感激。

谢谢。

+0

尝试$( 'UI-BTN ')而不是$('[资料链接]') –

+0

您的代码很容易受到[** SQL注入**](HTTPS ://en.wikipedia.org/wiki/SQL_injection)攻击。您应该通过[** mysqli **](https://secure.php.net/manual/en/mysqli.prepare.php)或[** PDO **](https ://secure.php.net/manual/en/pdo.prepared-statements.php)驱动程序。 [**这篇文章**](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)有一些很好的例子。 –

回答

0

首先在写html标签时出错。

<a href='#showRecipe' class='ui-btn' data-link='".$row['uid']."' ".$row['title']."</a> 

代替

<a href='#showRecipe' class='ui-btn' data-link='".$row['uid']."' />".$row['title']."</a> 

你应该写。

您可以找到数百个关于选择器的示例。

jQuery(document).ready(function() { 
 
    jQuery(document).on('click', 'a[class*="ui-btn"]', function() { 
 
    alert(jQuery(this).attr('data-link')); 
 
    }); 
 
});

+0

谢谢我在我的代码中使用/>它将按钮之外的文本抛出。我不知道为什么它没有复制到原始帖子。 – Dave

+0

您应该在JavaScript中添加的数据中使用实时方法。您只需要将其用作上述示例,因为实时方法支持已保留。 –