2017-11-25 29 views
0

私は作業しているjqmアプリケーションを持っています。私はリンクを作成するためにmysql dbを照会しています、彼らは動作していません。私はあなたがjq mobileでlocation.searchを使えないことを読んで学んだので、私の中に属性データリンクを追加しました。phpがjqueryモバイルで動作しない動的リンクを作成しました

ユーザーIDを持つCookieが設定されています。ユーザーがレシピを検索すると、Cookieが読み取られ、ユーザーIDが取得され、対応するユーザーIDを持つすべてのレシピが照会されます。

作成したリンクの1つをクリックして別のページに移動し、そのリンク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 {} 
?> 

は、私は、DBを照会し、データを表示するために特定のレシピの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で追加されたデータでは、ライブメソッドを使用する必要があります。ライブメソッドのサポートが残っているため、上記の例としてのみ使用する必要があります。 –