2010-01-01 3 views
0

저는 곧 PHP로 초보자를 찾고 있습니다.PHP 제거 버튼이 게시 된 정보를 계속 검색합니다.

빠른 문제가 있습니다. 장바구니의 제거 버튼이 있으며, 장바구니의 마지막 제품을 제외하고는 항상 코드가 작동합니다. 사람이 addtoCart 버튼을 누르면 URL이 ?buyproduct=$productNumber으로 다시로드되고 제거 버튼을 누르면 제품이 제거됩니다. 모든 항목이 좋으므로 마지막 항목을 제거하려고하면 URL에있는 제품을 계속 읽습니다. 따라서 수량은 현재 $productNumber에 대해 1로 유지됩니다.

양식 메소드 태그에 작업을 추가하여 페이지가 ?buyproduct=$productNumber없이 다시로드되도록 시도했지만 페이지 번호와 URL이 섹션도 재설정되어 재설정됩니다.

?buyproduct=$productNumber이 URL에서 삭제 된 경우 (예 : 카탈로그의 다른 섹션으로 이동하는 경우) 카트가 완전히 비울 수 있기 때문에 삭제가 작동하고 있음을 알고 있습니다.

+1

그것은 나 방법에 분명하지 않다 당신은 단순히 양식 조치에 대해 쿼리 문자열을 다시 생성이에 대한 해결 방법이 될 수있다 삭제 작업이 진행됩니다. URL에 항목을 추가하기위한 작업이 있습니다. 제거 할 항목이 있습니까? 나는 당신이 약간의 코드를 게시해야한다고 생각한다. –

+0

+1 일부 코드를 입력해야합니다. –

답변

0

form action을 변경하는 대신 기존 작업이 수행하는 작업을 조사하는 것이 좋습니다. 이것은 마치 GET 변수를 설정하거나 해제하는 것처럼 간단 할 수있는 것처럼 보입니다.

양식의 동작에 지정된 스크립트에서 일부 코드를 게시 할 수 있습니까?

0

분명히 귀하의 양식 제거 양식 제출이 귀하의 FORM 조치가 귀하의 장바구니에 제품을 다시 추가하려는 사실에 의해 상쇄되고 있습니다. 아마도 가장 쉬운 해결책은 ?remove=1과 같은 양식 작업에 스위치를 추가 한 다음 해당 섹션을 완전히 건너 뛰고 buyproduct의 사례를 처리하기 전에 확인할 수 있습니다.

그러나 불필요한 GET 변수를 서버에 보내고 있기 때문에 가장 좋은 솔루션은 아닙니다 (주로 buyproduct). 그런 다음 양식 작업으로 $str을 사용할 것

// allowed keys is used to sanitize GET data by only allowing a predefined 
// set of keys to be submitted with the form 
$allowed_keys = array('page' => true, 'limit' => true, 'othervar' => true); 
$str = 'path_to_form_action.php?'; 
foreach ($_GET as $k => $v) { 
    if (isset($allowed_keys[$k])) { 
     $str .= $k . '=' . $v . '&'; 
    } 
} 
$str = substr($str, 0, -1); 

:

<form action="<?php echo $str; ?>" method="GET"> 
관련 문제