2009-11-30 3 views
0

나는 mysql db에 저장된 레코드가 많은 광고 웹 사이트를 운영하고 있습니다.이렇게하는 것이 '더 나은 방법'입니까?

내 메인 페이지에는 사용자가 검색 기준을 지정할 수있는 양식이 있습니다. 조치가 myPhp.php 파일로 설정되었습니다.

myPhp.php은 NO HTML 만의 PHP 코드를 포함하지 않으며, 그것은 기본적으로이 같은 것입니다 : PHP에서 만든이 표에서

1- get values from FORM and build a SQL query 
2- query MYSQL db. 
3-display all results in a table using 
`while($row=mysql_fetch_array($res))` 
4- echo the table. 

, 나 또한 몇 가지 링크를 가지고 있고, 때마다 그들은 클릭 할 부모 페이지의 자바 스크립트 함수가 호출되어 숨겨진 입력 값을 무언가로 설정 한 다음 선택한 변수로 양식을 다시 제출합니다.

예 : 사용자가 검색 결과에서 다음 페이지로 이동하려면 PHP에서 생성 된 '다음'링크를 클릭해야하며 자바 스크립트가 호출되면 숨겨진 입력 값이 'next'로 설정됩니다 '을 입력하면 폼이 다시 제출되고 PHP 파일은 숨겨진 입력에서 변수를 가져 와서 그 값이'NEXT '로 설정된 것을 감지 한 후 다음 결과를 표시합니다.

이 모든 작업을 수행 할 수있는 다른 방법이 없습니까? (즉, 성능 및 안정성 측면에서 더 나은 방법)

아직 학습을 진행하고 있으므로 귀하의 도움에 매우 감사드립니다. 더 많은 정보가 필요할 때마다이 질문을 업데이트 할 것입니다.

감사

+0

쿼리 문자열에 웹 컨텍스트에서 또 다른 특정 의미가 있으므로 "쿼리 문자열"을 "SQL 쿼리"로 변경했습니다. –

+1

명심해야 할 한 가지 문제는 모든 사용자가 자바 스크립트를 사용할 수 없다는 것입니다. 당신은 또한 자바 스크립트 – espais

답변

3

그런 myPhp.php에서 GET 매개 변수를 확인

http://yourdomain/myPhp.php?page=2 

에 대한 링크와 다음 자바 스크립트 호출을 바꾸기 : 당신이로 변경해야 물론

if(isset($_GET['page']) AND is_numeric($_GET['page'])){ 
    $limit = (int) $_GET['page'] * MAX_RECORDS . ', ' . MAX_RECORDS; 
} else { 
    $limit = MAX_RECORDS; 
} 

//... 
$query .= 'LIMIT '. $limit; 

을 당신의 상수는 변화합니다.
이 방법은 페이지 매김이라고합니다. 더 나은 이해를 위해 Zend FrameworkPaginator 모듈을 살펴보십시오.

+0

없이 링크를 사용할 수 있는지 확인해야합니다. 그렇지만 위의 PHP 파일에 언급 된 변수를 다시 보내면 폼에 의해 제출 된 다른 변수가 사라질 수 있습니까? (쿼리 문자열, 가격 및 기타 사용자 입력과 같음) – pesar

+0

Foa : 쿼리 문자열을 보내지 않습니다. 2 : 데이터를 게시하지 않으면 POST 슈퍼 글로벌에서 데이터를 가져올 수 없습니다. – erenon

+0

downvote 후에 의견을 말하십시오. – erenon

0

이러한 링크에 제목 속성이있는 하나 이상의 동일한 클래스가 있으면이 링크를 클릭하여 단일 클릭 이벤트에 모든 링크를 첨부하고 클릭 한 요소의 제목을 테스트 할 수 있습니다.

스위치를 사용하여 작업을 수행하기위한 올바른 기능을 트리거 할 수 있습니다 (JQuery/Ajax를 사용한다고 가정).

이렇게하면됩니다. 적어도 숨겨진 필드는 없습니다.

예 :

<a href="myPhp.php?whatever you querystring is" title="NEXT">Next</a> 

<a href="myPhp.php?whatever you querystring is" title="AdDetails">Ad Details</a> 
0

당신이 양식을 제출하는 대신 서버에 전송하고자하는 매개 변수를 지정하는 쿼리 문자열을 사용할 수있는 링크를 작성. 당신은 당신이 보낼 때와 유사한 방법으로 다음의 값을 얻을 수있는 myPhp.php 페이지에서

<a href="myPhp.php?next=NEXT">Next</a> 

: 옆라는 형태로 숨겨진 입력이있는 경우 그럼 당신은 이런 식으로 같은 일을 accompish 수 있습니다 양식.

+0

좋아,하지만 내가 PHP 파일에 위에서 언급 한 변수를 다시 보내면 양식에 의해 제출 된 다른 변수가 사라질 수 있습니까? (쿼리 스트링, 가격 및 기타 사용자 입력과 같이) – pesar

+0

오. 양식에 다른 데이터가 있다는 것을 알지 못했습니다. 사용자가 클릭 한 링크를 알고 싶다고 생각했습니다. 폼의 모든 필드가 숨겨져있는 경우이 메서드를 사용합니다. 사용자가 폼을 편집 한 다음 이미 수행하고있는 것처럼 폼을 편집 할 수 있습니다. 다음과 같이 여러 개의 쿼리 문자열을 추가 할 수 있습니다. url? var = val & var2 = val2 & var3 = val3 –

관련 문제