2017-12-02 8 views
0

예제에서 Gravity Forms 라디오 버튼 필드 (필드 ID 4)에서 양식 데이터를 수집하고 있습니다. 필드 ID 4는 "첫 번째 선택"을 선택할 때 0 값을 갖습니다. 필드를 주소 지정하려면 변수 $ field_id를 사용하고 선택 값은 $ entry [$ field_id] (0 값)를 사용하여 수집되며이 값의 텍스트 레이블은 "첫 번째 선택"입니다. 값이 0 인 필드 ID 4의 예상 결과는 "First Choice"텍스트입니다. 이 파일을 텍스트 파일로 인쇄해야합니다. 다음을 수행했습니다 :php 함수는 예상되는 문자열 대신 0을 반환합니다.

$field_id = 4; 
    $field = GFFormsModel::get_field($form, $field_id); 
    $choice_text = $field['choices'][$entry[$field_id]]['text']; 

    $data = $choice_text; 

    file_put_contents($my_file,$data); 
    $tmpfile = fopen($my_file, "r"); 
    $contents = fread($tmpfile, filesize($my_file)); 

위의 방법을 사용하면 "First Choice"가 텍스트 파일에 예상대로 인쇄됩니다. 그러나 나는 이것을 함수로 할 필요가있다. 내가 어떤 이유로 0을 반환하고 다음과 같은 기능이 작업을 수행하려고하면 :

function choiceLabel($field_id){ 
     $field = GFFormsModel::get_field($form, $field_id); 
     $choice_text = $field['choices'][$entry[$field_id]]['text']; 
     return $choice_text; 
    } 

    $data = choiceLabel(4); 

    file_put_contents($my_file,$data); 
    $tmpfile = fopen($my_file, "r"); 
    $contents = fread($tmpfile, filesize($my_file)); 

이라는 오류가 발생합니다 "FREAD() : 경고 길이 매개 변수가 0보다 커야합니다." 함수가 "First Choice"문자열 대신 0 값을 반환하는 이유는 무엇입니까? 이것 좀 봐 줘서 고마워.

+0

을 정의하는 경우 그것은 함수에 범위에? 범위 및 따라서 null 또는 0이 아닌 함수 내에서 참조하는 범위 지정 문제가있을 가능성이 큽니다. –

+0

감사합니다. $ entry [$ field_id]를 0으로 바꾸고 같은 결과를 얻으려고했습니다. GFFormsModel이 문제 일 수 있다고 생각합니다. 이것은 중력 함수입니다. 아마도 그것은 내 기능 내에서 작동하지 않을 수 있습니까? 이 경우 나는 그 분야를 끌어 내지는조차하지 않습니다. –

답변

1

범위 방향으로 나를 가리켜 주신 David 께 감사드립니다.

이 작동 : $ 항목이

function choiceLabel($field_id,$form,$entry){ 
     $field = GFFormsModel::get_field($form, $field_id); 
     $choice_text = $field['choices'][$entry[$field_id]]['text']; 
     return $choice_text; 
    } 

    $data = choiceLabel(4,$form,$entry);