2016-07-07 4 views
0

mysqlからデータを読み込み、それを私のページのphpに渡す際に問題を回避しようとしています。 私の仕事は、mysqlから読み込んだデータをjs関数に直接挿入することです。 コードは次のとおりjson_encodeは空白の代わりに二重引用符を追加します。

while($row = $query_ope->fetch_assoc()){ 
    $data = array("str_id" => $row['Id'], 
       "str_rag_sociale" => $row['Rag_Sociale'], 
       "str_indirizzo" => $row['Indirizzo'], 
       "att_luogo" => json_decode($row['Comune']), 
       "str_cap" => $row['Cap'], 
       "str_reparto" => $row['Reparto'] 
       ); 
    $content .= '<tr class="cal_body">'. 
       <td class="btn_icon icon icon-setup" onclick=modUt('.json_encode($data).')></td>'. 
       '</tr>'; 

問題は今である以下のように解析される($行[「コムーネが」] =「いくつかのテキストは、」場合、例えば)その内部スペースを含むデータベースフィールドのデータ:

onclick=modUt({...,"att_luogo" : "some" text","str_cap"....}) 

最初の単語の後に二重引用符を入れると、これは問題です。これは、私のjs関数が失敗するためです。 私はなぜ夢中になっているのか理解しようとしています。

+1

をエンコードHTMLにありますか? – Devon

+0

コードの強調表示を見てください。あなたは '' 'がありません – RiggsFolly

+0

AJAXはおそらくもっと簡単になります – RiggsFolly

答えて

2

あなたはコムーネは、 `いくつかのtext`は、なぜあなたはそれを`)( `json_decodeを実行しているされている場合は、あなたのHTML属性が

$content .= '<tr class="cal_body"> 
      <td class="btn_icon icon icon-setup" onclick="'.htmlspecialchars('modUt('.json_encode($data).')').'"></td>'. 
      '</tr>'; 
+0

こんにちは、本当にありがとうございます。 私はあなたが私を推薦するように努力しました。私は自分の欠点を理解しました。 私はdbからデータを読み込む正しい方法と思っていますか?あるいは、データをより良くエンコードしてから、htmlspecialcharsのような特別な機能を使わずに読み込むべきでしょうか? Bye –

+0

データベースにデータをエンコードし、エンコードする必要があるときにエンコードすることをお勧めします。 – Musa

関連する問題