未定义的变量:job

时间:2015-11-18 10:39:02

标签: php

显示$ job为undefined。我的switch语句有什么问题?
在一个开关的情况下,我们只需要传递一个变量但是如何在这里附加数组。

list_questatus也是数组的值

if(isset($_POST['list_queuestatus']))
{
  $selected= $_POST['list_queuestatus'];
  switch($selected[$job]){
    case 'r':
       if($state[$jid]=="r"){
          $jobs[$j]=$jid;
       }
     break;
   }

 }

2 个答案:

答案 0 :(得分:1)

$j=0;
$jobs=array();
for($i = 5; $i < count($output); ++$i) {
 $jid=trim(substr($output[$i],0,30));

        $jobid[$jid]=trim(substr($output[$i],0,30));
        $username[$jid]=trim(substr($output[$i],30,15));
        $queue[$jid]=trim(substr($output[$i],47,15));
        $jobname[$jid]=trim(substr($output[$i],63,15));
        $sessionid[$jid]=trim(substr($output[$i],79,8));
        $nds[$jid]=trim(substr($output[$i],88,4));
        $tsk[$jid]=trim(substr($output[$i],93,5));
        $reqmem[$jid]=trim(substr($output[$i],99,6));
        $reqtime[$jid]=trim(substr($output[$i],106,5));
        $state[$jid]=trim(substr($output[$i],112,2));
        $elaptime[$jid]=trim(substr($output[$i],114,8));


if(isset($_POST['list_queuestatus']))
{
          $selected= $_POST['list_queuestatus'];

         switch($selected[$job]){

                case 'R':
                         if($state[$jid]=="R"){
                                $jobs[$j]=$jid;
                        }
                                break;
                case 'Q':
                        if($state[$jid]=="Q"){
                                $jobs[$j]=$jid;
                        }
                                break;
                case 'H':
                        if($state[$jid]=="H"){
                                $jobs[$j]=$jid;
                        }
                                break;
                case 'S':
                        if($state[$jid]=="S"){
                                $jobs[$j]=$jid;
                        }
                                break;
                case 'W':
                        if($state[$jid]=="W"){
                                $jobs[$j]=$jid;
                        }
                                break;
                case 'E':
                        if($state[$jid]=="E"){
                                $jobs[$j]=$jid;
                        }
                                break;
                case 'A':
                        $jobs[$j]=$jid;
                                }
}
else{
 $jobs[$j]=$jid;
        break;
}

}


$selected='';
function get_options($select)
{
        $list_queuestatus=array("--Select Status--"=>"SS","All"=>"A","Running"=>"R","Queued"=>"Q","Held"=>"H","Suspened"=>"S","Waiting"=>"W","Error"=>"E");
        $options='';
        while(list($k,$v)=each($list_queuestatus))
        {
                if($select==$v)
                {
                        $options.='<option value"'.$v.'"selected>'.$k.'</option>';
                }
                else{
                        $options.='<option value"'.$v.'">'.$k.'</option>';
                }
        }

        return $options;
}

echo '<form action="main.php?page=queuestatus&';
echo '" method="POST">';
echo '<select name="list_queuestatus" onchange="this.form.submit();">';
echo get_options($selected);
echo '</select>';
echo '</form>';

答案 1 :(得分:-1)

请使用$_POST代替$_post。请在使用之前声明$ job变量或外部范围。

似乎作业不是变量,而是数组的索引。所以请使用&#39; job&#39;而不是$ job。

希望这能解决您的问题。