編集:
解決しました。誰かが答えをコメントしましたが、その後削除しました。お恥ずかしいことに、この問題は、2 つの json_encode 行の後にセミコロンを追加することで修正されました。string1 が終了セミコロンなしで機能し、string2 が機能しなかった理由はまだわかりませんが、機能するので…成功ですか?
/編集
こんにちは…ここではかなり初心者のプログラマーです。
PHP 内で、データベースから 2 つの配列を取得しています。これはうまくいきます。次に、各配列を文字列に分解します。これもうまくいきます。
同じファイルの後半、コードの JavaScript セクション (jQuery を使用) で、次のようにします。
string1 = <?php echo json_encode($string_1);?>
string2 = <?php echo json_encode($string_2);?>
string1 のエンコードは完全に機能します... string2 行を完全にコメントアウトする限り。それは私のページを殺します。
文字列が utf8 でエンコードされていることを確認してみました。バックスラッシュやその他の問題のある文字がないことを確認してみました。現在、可能な限り問題がないように設計されたダミー コードを入手しましたが、それでも機能しません。
その骨組みバージョンがこちら。
PHP:
$array1 = array();
$array2 = array();
$i = 1;
while($row = mysqli_fetch_assoc($query_result)) {
$array1[$i] = $row['column1'];
$array2[$i] = $row['column2'];
$i++;
}
$string1 = implode(",", $array1);
$string2 = "oh_come_on_why_doesnt_this_work"; // implode(",", $array2);
そして JS/HTML/JQuery:
var string1;
var string2;
$.getScript("js/set_functions.js", function(){ loadedScript() });
function loadedScript() {
string1 = <?php echo json_encode($string1);?>
string2 = <?php echo json_encode($string2);?>
// string2 = <?php echo "'" . $string2 . "'";?> doesn't work either
alert(string1); // works if I comment out both string2 = … lines
alert(string2); // displays "undefined" if the first string2 = … line is commented…
// …out, doesn't display at all if it isn't
}
立ち往生してください助けてください。
私のコードをもっと見る必要がある場合、またはこの質問をより良くするために他にできることがあれば教えてください。ありがとう。
PS: 私は良いプログラマーではありません。この問題を解決する代わりに、私の他の悪いコーディング習慣を修正しないでください。ありがとう!
編集: 申し訳ありませんが、Joe Fraumbach への返信で、それは私のコピー貼り付けのエラーでした。私は実際に $array2 = array(); と宣言しました。