如何在PHP表单中返回未保存的变量?

问题描述:

解决:感谢@riggsfolly指引我朝着正确的方向。我应该先看看Drupal Forms API。新增类型“项目”的表单元素和它的工作就像一个魅力:如何在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.'),); 

更新:我应该提到这是一个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.';无济于事形式。

我想要做的就是在select之前的表单中包含一条语句,通知用户这是干什么用的。

谢谢!

+4

也许我需要越来越多的咖啡,但我不明白你的问题:/ –

+1

'$ form'是一个数组'= '是字符串连接 – CD001

$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

如果我正确理解你的问题。您正试图向$ form数组添加另一个值。

因为它是一个数组,你不能像字符串$ form。='text';

你可以,如果是有人只是一个变量,例如:

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

这将显示“您好,这是一种形式的”

但是因为你的$形式是一个数组,你必须添加在此liek字符串:

$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