2010-11-30 4 views
1

전달)이 WHERE 절을 포함하는 SQL 조각에 사용할 수 있어야합니다.JQUERY 패스 값을 반환하거나 내가하려고하고 그것을

$sOutput .= '"<a href=\"#whatever?' .addslashes($aRow['id_cruise']) .'\" class=\"flip\">'.addslashes($aRow['from_country']).'</a>",'; 

내가 링크를 클릭 LINK

, 당신은 그 플립 클래스를 참조하십시오. 그건 내가 SQL 쿼리가 전송 된 값으로 작동 후에 채워질 것이다 사업부 가지고있는 내 괜찮아 슬라이드 판넬 열을 수행합니다

JQUERY SNIPPET

<script type="text/javascript"> 
$(document).ready(function(){ 
$('a.flip').live('click',function(){ 
    $(".panel").slideToggle("slow"); 

    }); 
}); 
</script> 

당신이 볼 수 있듯이를, 그것은 라이브 함수를 사용하여 그래서 클릭하면 실제로 슬라이드 패널이 열립니다. 하지만 그 마지막 비트가 더 필요합니다. id_cruise의 값을 전송하는 것입니다. 행 위로 마우스를 가져 가면 ID 값이 변경된다는 것을 알 수 있습니다. 그러나이 값을 스 니펫에 전달하지 않고 SQL 쿼리에서 가져 왔습니다.

그래서 나는 그것이 "#"기호를 가지고있는 한, "무엇이든지"라고 ​​쓰여지는 링크에서 볼 수 있습니다. 링크는 서버 처리 파일의 일부이며, JQUERY는 사용자가 볼 수있는 페이지 파일에 있으며 두 페이지에 있습니다. 제프의 ​​코드 NOW 포함하여 여기에서 업데이트

:

링크는 이제 같습니다

$sOutput .= '"<a href=\"#id?' .addslashes($aRow['id_cruise']) .'\" class=\"flip\">'.addslashes($aRow['from_country']).'</a>",'; 

제프 현명 번째에서 매개 변수를 얻을 것입니다 세 번째 파일이 어떻게해야 표시 JQUERY 코드 조각을 돌려 주면이 두 번째 코드는 바로 아래에있는 세 번째 코드 조각으로 전달됩니다. 이 세 번째 스 니펫은 슬라이드 패널 내부에있는 DIV 상자로 전달하는 것입니다.

$(function() { 
     $('a.flip').live('click',function() { 
      $('.panel').slideToggle(slow'); 
      $('#reviews').load('SendIdToDatabase.php', {idCruise: this.id}); 
     }); 
}); 

을 SO 지금은 SQL 요청

<?php 


$id_crucero = $_REQUEST['id_cruise']; //this is what I (hopefully) should get from the page 
       require ('mysqli_connect.php'); 

        $sql ="SELECT description 
         FROM cruises 
         WHERE id_cruise 
         = '".$id_crucero."'"; 

         $result = @mysql_query ($sql); 

        while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 


        $reviews = ($row['description']); 
        echo "$reviews"; 
        }   

         ?> 
를 처리 할 PHP 코드 (SendIdToDatabase.php)를 만들 :

<script type="text/javascript"> 

$(document).ready(function(){ 
$('a.flip').live('click',function(){ 
$(".panel").slideToggle("slow"); 
     DoSomethingWith(this.id); 

    }); 

}); 
</script> 


<script type="text/javascript"> 

function DoSomethingWith(id) { 
    $.get("SendIdToDatabase.php", {idCruise: id}, AnotherFunction); 
} 
function AnotherFunction(str) { 
    $("#reviews").html(str); 
} 
</script> 

다른 기여자는이에 통합 및 단순화 할 수 있다고 말했다

그리고 여기에서 패널로 넘어가는 두 번째 AJAX 코드 스 니펫에 ECHO를 보내야합니다. (나는 "REVIEWS"로 돌아 왔고 HTML이 아닌 DIV입니다)

그러나 일부 링크는 값이 통과하거나 수신되지 않는 지점에서 부기가 있어야합니다.

12 년 12 월 현재 값은 계속 전달되지 않습니다. 나는 PHP 스크립트에서 일부 텍스트를 예고했는데, 그 안에는 디벨로이드 박스에 표시되어 있지만 그 안에는 값이 표시되지 않습니다.

+0

정확하게 $ .get을 호출합니까? – Krab

+0

잘 id의 값을 DB를 쿼리하는 SQL PHP 스크립트로 전달하기로되어 있습니다. 제안 된 대안 코드가 더 단순 해 보이지만 아직 확실하지 않습니다. PHP 스크립트에서 반향 된 데이터의 내용을 패널에있는 DIV 상자에 직접로드합니다. 그러나 그 idif 값이 SendIdToDatabase.php 파일로 전송 된 그 단순화 된 코드는 보지 못합니다. 아주 작은 일이있을 것임에 틀림 없지만 통과를 거부하고 있습니다. – Alvaro

+0

나는 거기에 # 기호가 있다고 생각합니다. href에서는 페이지의 전체 이름을 링크 할 수있는 위치에 배치 할 수 있어야하지만 Dreamweaver로 작업 중이므로 페이지를 업로드 할 때마다 234w234323234.php와 같은 임시 번호가 표시됩니다. 이유는 나는 새 페이지를 열지 않고 그 위치를 유지하도록 #을 넣어야하지만, # 값을 전달하면 전달되지 않습니다. – Alvaro

답변

2

"이"개체를 찾고 있습니다. "this"객체 내에서 id 속성을 얻을 수 있습니다.예를 들면 : 당신이 ID를 일단

<script type="text/javascript"> 
$(document).ready(function(){ 
$('a.flip').live('click',function(){ 
    $(".panel").slideToggle("slow"); 
    DoSomethingWith(this.id); 
    }); 
}); 
</script> 

, 당신은 다음 처리를 위해 아약스와 다른 스크립트에 전달할 수 있습니다 를 예를 들어 :

<script type="text/javascript"> 
function DoSomethingWith(id) { 
    $.get("SendIdToDatabase.php", {idCruise: id}, AnotherFunction); 
} 
function AnotherFunction(str) { 
    $(".panel").html(str); 
} 
</script> 

체크 아웃 jQuery Get을 문서에 대한 전송의 "수" 아약스 전화.

id로 원하는 모든 작업을 수행하려면 PHP 스크립트 (SendIdToDatabase.php)를 작성해야합니다. id를 사용하기 전에 #에서 무엇이든 제거하는 것을 잊지 마십시오.

별도의 스크립트가 필요한 이유는 http 요청의 "연결이 끊어진"특성을 이해해야하기 때문입니다. Herearesome 알맞은 설명과 도표.

+0

안녕하세요, 시간 내 주셔서 대단히 감사합니다. 당신이 말하는 PHP 스크립트는 SQL 쿼리를 포함하는 것을 의미합니까? 그렇다면 DIV 패널 안에 해당 PHP 스 니펫을 포함하고 있습니다.이 슬라이드는 링크를 클릭하면 열리고 닫히는 슬라이드입니다. 나머지는 내가 그대로 코드를 사용합니까 아니면 의사 코드입니까? Alert에 따라, 나는 그것없이해야 할 것입니다. 나는 1 시간 이상 동안 JQUERY에 대한 GET 문서에 있는데, 어떻게 그것을하려고하는지입니다. 다시 고맙습니다 – Alvaro

+0

대상 PHP 스크립트는 새로운 스크립트 여야합니다. 페이지가 렌더링되면 원래 PHP 스크립트는 실행이 중지되고 클라이언트 측에서 발생하는 데이터는 보이지 않습니다. 이것은 정확히 Ajax가 해결하려고하는 문제의 일종입니다. 그러나 별도의 스크립트가 필요합니다. 서버 측 코드가 클라이언트 측에서 일어나는 일을 인식하도록 할 수는 없습니다. –

+0

코드는 그대로 작동하지만 일부 이름을 응용 프로그램에 더 적합한 것으로 변경하려고 할 수 있습니다. 또한 반환 함수가 필요하지 않을 수도 있습니다. 다시 말하지만, 나는 당신이 그 데이터로 무엇을하려하는지 모른다. –