2017-12-02 81 views
0

在我的示例中,我正在從Gravity Forms單選按鈕字段(字段ID 4)中收集表單數據。字段ID 4對於選擇「第一選擇」具有值0。因此,爲了解決這個問題,我使用了變量$ field_id,並通過使用$ entry [$ field_id](它的值爲0)來收集選擇值,並且此值的文本標籤爲「首選」。字段ID 4的值爲0的預期結果是文本「首選」。我需要將其打印到文本文件中。我也做了以下內容:如預期php函數返回零而不是預期的字符串

$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)); 

上述方法將打印「第一選擇」我的文本文件。不過,我需要用一個函數來做到這一點。如果我嘗試用下面的函數,我由於某種原因,返回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更大」。爲什麼我的函數返回0值而不是字符串「First Choice」?感謝您看這個。

+0

$項,它是在範圍上的功能?您可能有一個範圍問題,在該範圍內您引用的函數中的某些內容不在範圍內,因此爲null或零。 –

+0

謝謝。我試圖用0替換$ entry [$ field_id]並得到相同的結果。我認爲GFFormsModel可能是問題。這是一個重力形式函數。也許它不能在我的功能內工作?在那種情況下,我甚至沒有拉開這個領域。 –

回答

1

感謝大衛指點我的範圍。

這工作:如果定義

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);