2013-02-25 4 views
-1

데이터베이스에서 정렬 된 일부 콘텐츠가있는 페이지를 만들고 있습니다. A는 이미 php를 정렬하고 단추로 propably 호출해야합니다, 그리고 나는 이미 페이지에있는 일부 div에 작성해야 할 PHP 출력이 필요합니다. 그것은 가능한가?PHP를 WordPress에 호출하는 방법 페이지 아약스

sorting.php은

<?php 
mysql_connect("localhost", "login", "pass") or die(mysql_error()); 
mysql_select_db("database"); 

$result = mysql_query("SELECT * FROM table ORDER BY added ASC"); 

while($row = mysql_fetch_array($result)) 
    { 
    echo "<div class='something'>"; 
    echo "<a href='$row[link]'>"; 
    echo "<img src='$row[img]' height='125' width='125'/>"; 
    echo "<p>$row[name]</p></a></div>"; 
    echo "<br>"; 
    } 
?> 

종류 또는 필터의 모든 유형이 다른 PHP에 의해 처리됩니다. 이런 종류의 페이지를 만드는 좋은 방법입니까? 아니면 더 쉽고 편한 방법이 있습니까? 그리고 한 가지 더. 다른 유형의 필터를 선택하면 약간의 전환이 가능합니까? 나는 다음과 같이하고 싶다 : quicksand

답변

0

페이지에 jQuery를 포함 할 수 있다면 정확하게 수행 할 수있는 단축 방법이있다 : .load(). 최종 자바 스크립트는 다음과 같이 보일 수 있습니다

$(document).ready(function() { 

    $("#searchButton").bind('click', function() { 
     $("#resultsDiv").load(
      'http://mysite.com/sorting.php', 
      { // parameters, in object literal format 
       sortDir: 'asc', 
       sortCol: 'lastname' 
       // etc. 
      } 
     ); 
    }); 

}); 

어디 대체 mysite.com 사이트/마크 업에 대한 실시간 정보를 searchButton 및 resultsDiv. 다음과 같이 jquery 선택자를 사용하여 페이지 요소에서 정렬 매개 변수를 가져올 수도 있습니다. $("#sortDir").val() - 텍스트 상자, 텍스트 영역 또는 선택 상자로 가정합니다. 양식에서 사용하는 것으로 가정하면 확인란과 라디오 버튼을 검색하는 다른 방법이 있습니다. 다른 질문에 답변하려면 :

1) 모든 종류의 정렬 또는 필터는 다른 PHP에 의해 처리됩니다. 이런 종류의 페이지를 만드는 좋은 방법입니까? 아니면 더 쉽고 편한 방법이 있습니까?

작은 숫자에는 무리가 없습니다. 서버에 인수를 허용하지 않으면 악의적 인 입력을 허용하지 않는 한 방법입니다. 테이블 이름이나 열을 변경해야 할 때 다루기 힘들어지며 모든 파일을 수정해야합니다. 또한 필터와 정렬의 조합을 허용하는 경우, 필터와 정렬의 조합을 지원하는 것이 중요하다는 것을 인식해야합니다. 3 개의 필터와 4 개의 정렬이있는 경우 12 개의 조합입니다. 다른 정렬과 다른 필터를 추가하려면 필터를위한 4 개의 새 페이지와 정렬을위한 5 개의 새 페이지를 추가해야하며 매번 악화됩니다.

대부분의 사람들은 모든 데이터가 동일한 페이지로 이동하고 해당 페이지에서만 사용자 입력의 유효성 검사, 쿼리의 공식화 및 결과 반환을 담당하게됩니다. 이 패러다임은 일반적으로 DRY for Don't Repeat Yourself이라고합니다. 그러나 사용자 입력을 수락하는 경우 validating it (서버 쪽! Don't trust user input!)에 대해 매우주의해야하며 예를 들어 허용하지 않습니다. a SQL injectionattack.

2) 그리고 한 가지 더. 다른 유형의 필터를 선택하면 약간의 전환이 가능합니까? 나는 다음과 같은 것을 원합니다 : quicksand

그 특별한 애니메이션은 매우 복잡합니다. 그들은 각 페이지에 표시 할 아이콘 사이의 차이점을 실행하고, 축소, 폭발, 이동 등을 프로그래밍 방식으로 사용자 정의하는 등 프로그래밍 할 수 있습니다.

하지만 너 알지? 이 플러그인은 jQuery 1.3+과 호환되며 MIT & GPLv2로 라이센스되어 있으므로 사이트에 통합하는 데 문제가 없어야합니다. docs을 확인하고 직접 찔러보세요. 본질적으로 반환하는 마크 업 유형을 정렬하는 것과 호환되지 않는 것은 없습니다.나는 그들의 예가 정렬을 위해 li 태그를 사용하고 있으며, 귀하의 예제 반환이 div을 사용하고 있음을 주목합니다. 하지만 그게 큰 문제가 아니어야하고, 그렇다면 li을 대신 반환하십시오. 그것을 사용하는 데 문제가 생기면 다른 질문을 올리십시오. 적절하게 태그를 달아서 시도한 모든 것을 게시 할 준비를하십시오.

+0

감사합니다. 작동합니다 .load()에는 닫는 괄호가 없지만 세부 사항이 있습니다. 하나 더. 나는 그 sortDir과 sortCol이 무엇인지 모릅니다. 그걸 제게 설명해 주시겠습니까? – ProfiThing

+0

tyop을 수정했습니다. 죄송합니다. sortDir 및 sortCol은 예제 매개 변수입니다. 다른 정렬 및 필터에 대해 여러 페이지가 있다고 언급하셨습니다. 내가 통과 한 옵션은 동일한 페이지로 전달하는 예제입니다. 예제 코드로 돌아가려면 sortCol이 'added'(ORDER BY이므로)이고 sortDir은 'ASC'가 될 것입니다 (이는 예제 정렬 (orders) 정렬 방향이기 때문에). –

+0

그래, 나도 그렇게 생각하고 노력했지만 작동하지 않는다. sortDir : 'asc', sortCol : 'added'로 변경하고 아무 일도 일어나지 않습니다. 이 작품을 chceck 만약 내가 그것을 추가하고 이름을 오름차순과 desc,하지만 아무것도 변경 정렬하려고 했어. – ProfiThing

관련 문제