-2

It is display $job as undefined. What is wrong with my switch statement?
in a switch case we have to pass only one variable but how can i append the array here.

list_questatus is also values of array

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

 }
NullPoiиteя
  • 56,591
  • 22
  • 125
  • 143

2 Answers2

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

Please use $_POST instead of $_post. And please declare the $job variable before it used or the outer scope.

It seems that that the job is not a variable its a index for the array. So please use 'job' instead of $job.

Hope this will resolve your issue.

Tristup
  • 3,603
  • 1
  • 14
  • 26