別のファイルにJavaScriptにクラスで定義されなさい私が序文し、多くのWeb開発を行っていません。私はmethodExec.php
ファイルとmain.js
ファイルを持っています。私のPHPファイルでは、データベースから行を含むリストを作成しています。そのリストを.jsファイルで使用しようとしています。クラス外の配列を宣言するとアクセスできますが、データベースの行を収集した後で配列を参照する方法がわかりません。PHPオブジェクトは、
methodExec.php
<?php
require_once 'includes/constants.php';
$methodExecVar = new methodExec();
class methodExec {
private $conn;
public $timesList;
function __construct(){
$this->conn = new mysqli(DB_SERVER,DB_USER,DB_PASSWORD, DB_TIMES) or
die('There was a problem with the database connection.');
}
function getTimes(){
$timesList = [];
$query = "SELECT *
FROM times";
$result = $this->conn->query($query);
while ($row = $result->fetch_assoc()) {
$timesList[] = $row;
}
$this->conn->close();
return $timesList;
}
}
?>
<script type="text/javascript">var jsArray = <?php echo json_encode($methodExecVar->timesList); ?>;</script>
<script type="text/javascript" src="js/main.js"></script>
main.jsのみalert(jsArray)
を含みます。この例では、nullが返されますが、これは私が理解できるものですが、どのように待機させるか、または何らかの選択肢を作る方法がわかりません。前もって感謝します!
は、スクリプトタグで正しく出力されている文字列ですか? –
あなたは、結果を待つためにjs関数setTimeout()を試すことができます。 300ミリ秒に設定してみてください。 – daremachine
jsArray inicializationの前にブラウザがmain.jsをメモリにロードするため、おそらくnullです。時間の呼び出しに存在しないため、警告のjsArrayが空である可能性があります。 – daremachine