2016-10-31 1 views
0

저는 PHP에 대한 완전한 신조입니다.이 문제를 연구했지만 답을 찾지 못했습니다. Formstack을 사용하여 비영리 단체를위한 주문 양식을 만듭니다. 프로세스가 끝나면 formstack은 입력 된 모든 데이터를 URL에 추가합니다. 일반적으로 필자는 필요한 정보를 가져 오기 위해 간단한 PHP GET을 사용합니다. 그러나이 경우에는 기본 항목 이름의 = 뒤에 두 번째 데이터 계층이 있습니다.PHP는 Get 함수에서 하위 정보를 가져옵니다.

각 항목 (예를 들어 상품 닭이다)이 유사한 나타난다 :

& 닭 = CHARGE_TYPE + % 3D + fixed_amount %의 0Aquantity + % 3D + 2 % 0Aunit_price + % 3D + 15.00 %의 0Atotal + % 3D + 30 &

수량 = 2를 가져와야합니다. 수량은 닭의 종속 가치입니다. 총 CHARGE_TYPE = fixed_amount 수량 = 2 UNIT_PRICE = 15.00 = 30

이 어떤 생각을 크게 감상 할 수있다 : 내 지식은 = 닭 다음 전체 문자열을 당겨에 결과

<?php echo htmlspecialchars($_GET["chickens"]); ?> 

을 종료합니다. 감사!

+0

를 urlencoded를 것입니다. 아마도 $ _GET [ 'chickens']에 urldecode()를 시도해보십시오. 아마도 $ _SERVER [ 'QUERY_STRING']에있을 가능성이 높습니다. –

+0

요청을 파싱하는 방법을 제공 한 코드 조각의 출력에서 ​​분명해야합니다. 사용중인 코드를 게시 해보십시오. (도움을받을 수있는 사람들을 위해 PHP가 해당 쿼리 문자열에 대해 실행중인 결과물). – symcbean

답변

0

당신이려고하고있는 무슨에 따라 닭 배열 형태로 값을 변환 할 수 : 그것은

// separate all the value-key pairs in chicken into an array 
$array = explode("\n", $_GET["chickens"]); 

// init an array that will store all values as associative array 
$chickens = array(); 

foreach($array as $valuepair) { 
    // go too the key-value-pairs and split them at the "=" char 
    $tmp = explode("=", $valuepair); 
    // add value under keyname to array and remove some spaces with trim function 
    $chickens[trim($tmp[0])] = trim($tmp[1]); 
} 

// show what we got as key-values, as debug output 
print_r($chickens); 

// show one value of the array 
echo $chickens['quantity']; 
+0

도움을 주셔서 감사합니다. Array ([charge_type] => fixed_amount [수량] => 2 [unit_price] => 15.00 [total] => 30), 어떻게 수량을 표시할지, 단가? – user1424269

+0

@ user1424269 업데이트 된 답변, 해당 배열의 단일 값을 반향하는 방법을 참조하십시오. 나중에 print_r을 제거해야합니다. – sebkrueger

+0

고맙습니다. 잘 지내라! – user1424269

관련 문제