2012-05-22 5 views
1

클릭 한 href를 기반으로 div 콘텐츠를로드하고 매개 변수를 전달하려고합니다. 예를 들어, Link 1 Link 1을 클릭하면 process.php에 값 "3"이 전달되고 "apple is good you"라는 값이 반환됩니다.JQuery 매개 변수가 포함 된 다이내믹 콘텐츠

그러나 제출 버튼이 없으면 값을 전달할 수없는 것처럼 보입니다. 어쨌든 매개 변수를 다른 PHP 파일에 전달하여 처리하고 값을 반환 할 수 있습니까?

$(document).ready(function(){ 
    $("#testing a").live("click", function(evt){ 
     var id= $(this).attr('id'); 
     $.post("process.php", { id: id }, 
     function(data) { 
      alert(data); 
        $('#result').load(data); 
     }); 
    }) 

}); 

다음은 내 HTML

<div id="testing"> 
<a href="" id="11"> hello </a> 
</div> 

<div id="result"></div> 

당신의 도움을 주셔서 감사합니다, 덕분에 많은입니다!

+0

당신은 당신의 문제에 대한 정교한 수 있습니다 : 당신의 process.php 파일에서

// Short-hand version of $(document).ready(); $(function(){ // Handle anchor clicks on #testing $("#testing").on("click", "a", function(e){ // Prevent links from sending us away e.preventDefault(); // POST our anchor ID to process.php, and handle the response $.post("process.php", { 'id': $(this).attr("id") }, function(data){ // Set the response as the HTML content of #result $("#result").html(data); }); }); }); 

, 다음과 같은 뭔가가있을 수 있습니다? 서버에서 데이터를 다시 가져오고 있습니까? 오류? 이것은 완전한 기능 코드입니다. – Ohgodwhy

+0

@Ohgodwhy가 문제에 대한 해결책을 찾았습니다. 감사합니다! :) – Sylph

답변

3

id 값에는 숫자를 사용하면 안됩니다. 대신 문자 앞에 접두사를 추가하거나 요소에 data- 덧붙임에 추가하는 것이 좋습니다.

또한 $.live()은 더 이상 사용되지 않으며 여기서는 이벤트 위임을 위해 $.on()을 사용하는 것이 좋습니다. 아래 코드에서이 코드를 처리했지만 id 문제가 남아 있습니다.

마지막으로 $.load()$.html()은 동일하지 않습니다. data에 요소를로드하려는 경우 load 메서드를 호출하지 않아도됩니다 (이름이 혼동을 줄 수 있음).

$msg = array( 
    "...chirp chirp...", 
    "This is response number 1", 
    "And I am the second guy you'll see!", 
    "Apples are good for you!" 
); 

$num = $_POST["id"] || 0; 

echo $msg[ $num ]; 
+0

대단히 고마워요, 완벽하게 작동합니다! "id"에 대한 귀하의 충고에 주목했습니다. – Sylph

관련 문제