2017-11-25 23 views
0

저는 작업중인 jqm 응용 프로그램을 가지고 있습니다. mysql db를 쿼리하여 링크를 만들 때 작동하지 않습니다. 나는 jq mobile에서 location.search를 사용할 수 없다는 것을 읽고 배웠다. 그래서 나는 내 속성 데이터 링크를 추가했다.php가 jquery 모바일에서 작동하지 않는 동적 링크를 만들었습니다.

나는 사용자 ID가있는 쿠키 세트를 가지고 있는데, 사용자가 조리법을 검색 할 때 그의 쿠키를 읽고 사용자 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 {} 
?> 

내가 데이터를 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 (https://secure.php.net/manual/en/mysqli.prepare.php)) 매개 변수를 통해 매개 변수가 바인딩 된 준비된 문을 사용해야합니다. : //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로 추가 된 데이터에서 라이브 메소드를 사용해야합니다. 라이브 메소드 지원이 남아 있기 때문에 위에 주어진 예제로만 사용하면됩니다. –