格式化PHP字符串以进行后期操作

时间:2011-06-29 09:01:03

标签: php mysql

我正在使用下拉框在表单中执行选择。

我有4个值('value1','value2','value3','value4')。每个都列在下拉框中。但是我也希望所有4个值都有一个选项,例如,这是我目前用于绘制下拉菜单的函数的数组:

$menuValues("'value1','value2','value3','value4'",'value1','value2','value3','value4');

然而,这会在操作页面上生成一个空变量。我需要在每个值周围保留单引号以提供一个函数,该函数反过来驱动一个mysql查询。这就是我使用双引号括起第一个值的原因。

这是下拉功能:

function frDrop($arr,$frm,$dropTitle) {
echo "<select name='".$frm."' id='".$frm."'><option value=''>".$dropTitle."...</option>";
    foreach ($arr as $key => $value) {
    echo "<option value='".$value."'>".$value."</option>";
    }
echo "</select>";
}

2 个答案:

答案 0 :(得分:1)

目前尚不清楚函数frDrop()在哪里被调用,它的参数是什么意思。但是对于我在下面的回答,我假设$ arr是包含下拉选项的数组。所以,

$arr = array(
"'value1','value2','value3','value4'",
'value1',
'value2',
'value3',
'value4'
);

现在,正如我在上面的评论中所猜测的那样,也许第一个数组值中的单引号 - “'value1','value2','value3','value4'” - 与单引号冲突在函数frDrop()中foreach()的标记中。这是第一个值的标签形式:

<option value=''value1','value2','value3','value4''>'value1','value2','value3','value4'</option>

你可能试图逃避这样的单引号:

echo "<option value='".addslashes($value)."'>".$value."</option>";

OR,而是使用单引号括起您的PHP语句:

echo '<option value="' . $value . '">' . $value . '</option>';

希望这有帮助。

答案 1 :(得分:0)

    function frDrop($arr,$frm,$dropTitle) {
    $temp   =''
    $temp.="<select name='".$frm."' id='".$frm."'><option value=''>".$dropTitle."...</option>";
        foreach ($arr as $key => $value) {
        $temp.= "<option value='".$value."'>".$value."</option>";
        }
    $temp.="</select>";
    }
echo $temp