2011-12-10 41 views
0

我只是想知道你是如何将一个函数放在echo语句中的?把功能放在PHP中的回声

function Catselect($abc){ 
global $category; 
if($category == $abc){ 
echo 'selected ="selected"'; 
} 
} 

echo' 
     <select style="width: 260px;" name="category"> 
     <option value="01" '.Catselect("01").'>Site Related</option> 
     <option value="02" '.Catselect("02").'>Tournaments</option> 
     <option value="03" '.Catselect("03").'>Articles</option> 
     <option value="04" '.Catselect("04").'>Interviews</option> 
     <option value="05" '.Catselect("05").'>General</option> 
     </select> 
     '; 

我试图做一个更新网页,让您能看到前面的类别是什么,所以我们在这之前我们说,类别为赛事值为2,如果你去更新页面,比赛类别将被自动选择。

但是我得到的只是在我的标题顶部选择的单词=“选定”。

任何帮助?

+0

而不是在功能打印,你要返回一个值。如果'$ abc'是选定的类别,那么你会写'$ return =“selected = \”selected \“”;返回$ return;'在函数的if语句中。 – sooper

回答

2

而不是echo 'selected ="selected"';尝试return 'selected ="selected"';

1

更改echo在功能的return,它应该工作。因为你已经在你的html中使用了echo语句来输出你的列表项,所以你只需要在你的函数中有一个返回值,并且以前的echo会小心地打印它。

1

您需要return该函数的值,而不是echo它里面的函数。你正在做的是你用一个函数的返回值连接一个字符串,这非常好。像:
'A random number: ' . rand()。该函数被执行,并且函数返回的任何内容都被连接到字符串。如果该函数本身也输出某个东西,那么在函数被调用时输出它,然后将其返回值连接到字符串。

0

我确定有人会有一个更优雅的解决方案......但这将工作。

function Catselect($abc){ 
global $category; 
$sel1 = ''; $sel2=''; $sel3=''; $sel4=''; $sel5 = ''; 
switch($abc) { 
    case '01': $sel1='selected'; break; 
    case '02': $sel2='selected'; break; 
    case '03': $sel3='selected'; break; 
    default: 
    case '04': $sel4 = 'selected'; break; 
    case '05': $sel5 = 'selected'; break; 
} 
return $sel1; return $sel2; return $sel3; return $sel4; return $sel5; 
} 


echo' 
    <select style="width: 260px;" name="category"> 
    <option value="01" '.Catselect("01").' '.$sel1.'>Site Related</option> 
    <option value="02" '.Catselect("02").' '.$sel2.'>Tournaments</option> 
    <option value="03" '.Catselect("03").' '.$sel3.'>Articles</option> 
    <option value="04" '.Catselect("04").' '.$sel4.'>Interviews</option> 
    <option value="05" '.Catselect("05").' '.$sel5.'>General</option> 
    </select> 
    '; 
0

而不是打印在你的函数,你会想要返回一个值。如果$abc是选定的类别,那么您将在函数的if语句内写入$return = "selected=\"selected\""; return $return;

0

而不是

echo 'selected="selected"'; 

return 'selected="selected"'; 

这将返回字符串并反过来它串联到您的输出字符串。

您还可以使用三元运营商,而不是使用功能,像这样:

echo' 
    <select style="width: 260px;" name="category"> 
    <option value="01" '.($category == "01" ? 'selected="selected"' : '').'>Site Related</option> 
    <option value="02" '.($category == "02" ? 'selected="selected"' : '').'>Tournaments</option> 
    <option value="03" '.($category == "03" ? 'selected="selected"' : '').'>Articles</option> 
    <option value="04" '.($category == "04" ? 'selected="selected"' : '').'>Interviews</option> 
    <option value="05" '.($category == "05" ? 'selected="selected"' : '').'>General</option> 
    </select> 
    ';