0

下面的 PHP 代码有错误。我尝试根据访问者的某些选择重建一个列表,并通过 Ajax iframe 将其放回我的 HTML 中。

当我尝试在循环中添加字符串时,问题来自这一行:

$tempr.='<option value=\"'.$donnees['name'].'\">'.$donnees['name'].'</option>'); 

确实,当我将其替换为(例如)时:

$tempr.='<option value=\"loop\">loop</option>;

它完美地工作。我试图分开不同的字符串,str_replace,把/放在任何地方,但它不起作用。我想知道我的 SQL 数据库是否太大……但这不太可能。好吧,我迷路了。

感谢我们的帮助!!!!

$req = $bdd->prepare('SELECT name FROM regions WHERE country = :country');
$req->execute(array('country' => $_SESSION['codepays']));
$donnees = $req->fetch();


$tempr='<select name=\"regionm\" id=\"regionm\" onchange=\"validregion();\">';

$req = $bdd->prepare('SELECT name FROM regions WHERE country = :country');
                $req->execute(array('country' => $_SESSION['codepays']));
                $donnees = $req->fetch();
                $i='0';
                while($donnees)
                    {   

                        $tempr.='<option value=\"'.$donnees['name'].'\">'.$donnees['name'].'</option>');    

                        $donnees = $req->fetch();
                    }

$tempr.='<option value=\"test\">test</option></select>';    

echo '<script language="JavaScript" type="text/javascript">'."\n";
echo 'var parDoc = window.parent.document;'."\n";
echo 'parDoc.getElementById("regionreplace").innerHTML="'.$tempr.'";'."\n";
echo "\n".'</script>';      

$req->closeCursor();
4

2 回答 2

0

我能想到的唯一潜在问题是" < >你的字符串中有类似的字符。试试这个代码:

 $tempr.='<option value=\"'.htmlspecialchars($donnees['name']).'\">'.$donnees['name'].'</option>');
于 2012-04-27T17:48:49.047 回答
0

也许:

$donnees = $req->execute(array('country' => $_SESSION['codepays']));
while(!$donnees->EOF)
{   
    $tempr.='<option value="'.htmlspecialchars($donnees->fields['name']).'">'.$donnees->fields['name'].'</option>';
    $req->MoveNext();
}
于 2012-04-27T17:59:36.927 回答