0

以下のPHPコードでエラーが発生しました。訪問者の選択に応じてリストを再構築し、Ajaxiframeを介してHTMLに戻そうとしています。

ループに文字列を追加しようとすると、この行から問題が発生します。

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

確かに、私がそれを(例えば)で置き換えるとき:

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

それは完璧に動作します。異なる文字列str_replace、put / everywhereを分離しようとしましたが、機能しません。私の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

多分:

$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 に答える
0

私が思いつく唯一の潜在的な問題は" < >、文字列に次のような文字があることです。このコードを試してください:

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