2016-09-21 5 views
-4

РЕШЕНИЕ: Благодаря @riggsfolly для указания меня в правильном направлении. Я должен был сначала изучить API Drupal Forms. Добавлен элемент формы типа «элемент» и он работал как шарм:Как вернуть несохраненную переменную в форме PHP?

$form['description'] = array('#type'=> 'item', '#title'=> t('To maintain consistency across your course, use the link below to select whether you plan to grade assessments based on points or percentages.'),); 

UPDATE: Я хотел бы упомянуть, это форма Drupal. Сожалею.

[PHP Новичок] Я работаю со следующим кодом я не писал:

function grading_method_form($form, &$form_state){ 
    $courseId = $_SESSION['courseId']; 
    $gradingMethodDetails = getCourseGradingMethod($courseId); 
    $form = array(); 
    $form['cid'] = array('#title'=>NULL,'#type'=>'hidden','#required'=>TRUE,'#value'=>$courseId,); 
    $form['grading_method'] = array('#title'=>'','#type'=>'select','#default_value'=>$gradingMethodDetails['grading_method'],'#options'=>array(0=>'Percentage',1=>'Points'),); 
    $form['submit'] = array('#type'=>'submit','#value'=>t('Save Grading Method')); 
    return $form; 
} 

То, что я хотел бы включить в этой очень простой форме этого описания для пользователей о том, что они делают здесь , Я попытался, добавив это:

$form .= "To maintain consistency across your course, use the link below to select whether you plan to grade assessments based on points or percentages."; 

, а также пытался переместить всю форму в другой подход, который я вижу в другом месте, где я конкатенация дополнительных строк в форму, используя $form .= 'My description info.'; безрезультатно.

Все, что я хочу сделать, это включить оператор в форму до выбора, который информирует пользователя о том, для чего это необходимо.

Спасибо!

+4

Может быть, мне нужно больше кофе сегодня, но я не получаю свой вопрос:./ –

+1

'$ form' является массивом' = 'is string concatenation – CD001

ответ

3

$form массив все, что вам нужно сделать, это добавить еще один вхождение в массив как

function grading_method_form($form, &$form_state){ 
    $courseId = $_SESSION['courseId']; 
    $gradingMethodDetails = getCourseGradingMethod($courseId); 
    $form = array(); 
    $form['cid'] = array('#title'=>NULL,'#type'=>'hidden','#required'=>TRUE,'#value'=>$courseId,); 
    $form['grading_method'] = array('#title'=>'','#type'=>'select','#default_value'=>$gradingMethodDetails['grading_method'],'#options'=>array(0=>'Percentage',1=>'Points'),); 
    $form['submit'] = array('#type'=>'submit','#value'=>t('Save Grading Method')); 


    $form['new_message'] = "To maintain consistency across your course, use the link below to select whether you plan to grade assessments based on points or percentages."; 

    return $form; 
} 

Конечно вы затем должны смотреть на код, который имеет дело с результатом этой функции и сделать что-то соответствующий этому новому происхождению.

+0

просто избили меня тоже :( – virepo

+0

@virepo Великие умы Думаю – RiggsFolly

+0

@RiggsFolly - отлично - это было что-то еще, что я пробовал. Но функция, которая использует данные формы, очевидно, ничего не делает с новым вхождением. Нужно ли это? Если используются другие вхождения, но это просто сидит в массиве, не установленном и неиспользуемым, это проблема? – Smartasc

1

Если я правильно понял ваш вопрос. Вы пытаетесь добавить другое значение в массив $ form.

Поскольку это массив, вы не можете добавить строку к нему, как $ form. = 'Text';

Вы могли бы, если есть просто переменная, например:

$form = 'hello'; 
$form .= ' this is a form'; 
echo $form; 

Это будет отображать «привет это форма»

Но потому, что ваш $ форма массив вы должны добавить строка на Лик этого:

$form['string'] = 'your string'; 

, которые хотели бы что-то вроде:

array(

    ['string'] => 'your string' 

) 

И с остальной частью $ форме это будет выглядеть примерно так:

Array 
(
[cid] => Array 
    (
     [#title] => 
     [#type] => hidden 
     [#required] => 1 
     [#value] => 1 
    ) 

[grading_method] => Array 
    (
     [#title] => 
     [#type] => select 
     [#default_value] => 1 
     [#options] => Array 
      (
       [0] => Percentage 
       [1] => Points 
      ) 

    ) 

[submit] => Array 
    (
     [#type] => submit 
     [#value] => 1 
    ) 
[string] => 'your text string here' 

) 
+0

Спасибо virepo - Я просто не знаю, что делать с этим лишним появлением. – Smartasc

+0

Ну, это зависит от того, что вам нужно. – virepo

Смежные вопросы