これは私がやろうとしていることです: フォームが送信されたとき (ボタンをクリックして)
- PHPを使用してMySQLデータにデータを挿入したい
- 挿入の成功に基づいて、JavaScript(JS) コードを実行したいと思います。(実際には、AJAX を使用して JS 配列からさらにいくつかのデータが挿入されますが、以下のテスト コードでは、単に配列でアラートを表示しています)。また、関数を使用して PHP 経由で MySQL から自動インクリメント ID を取得する必要があるため、最初に PHP を実行する必要があり
mysqli_insert_id()
ます。 - すべてのデータが挿入された後 (または PHP と JS コードの両方が実行された後)、送信を開始した同じページに戻りたいと思います。テスト コードでは、このページは と呼ばれ
test.php
ます。
以下は私のテストコードです(test.php
ページ内):
<?php
// Require the configuration which controls controls error reporting:
require ('config.inc.php');
// Require the database connection:
require (MYSQL);
/* PAGE CONTENT STARTS HERE! */
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<!--JQUERY-->
<script type="text/javascript" src="js/jquery-1.8.2.min.js" ></script>
<script type="text/javascript">
var store_categories = [];
function init_filtering() {
store_categories.push('data1');
alert ("alert1: "+ store_categories);
}
</script>
<script type="text/javascript">$( init_filtering );</script>
</head>
<body>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$q = "INSERT INTO sms_category (sms_updated_id, category) VALUES (1, 'categories')";
$r = mysqli_query ($dbc, $q);
}
if (mysqli_affected_rows($dbc) == 1) {
?>
<script type="text/javascript">
alert ("alert2: "+ store_categories);
</script>
<?php
} // end if
?>
<form id="edit_data" action="test.php" method="post">
<input type="submit" value="Save">
</form>
</body>
</html>
今起こっていること:
- Alert1 は
store_categories
配列内のデータを正しく表示しています - しかし、送信ボタンをクリックすると、Alert2 はまだ空白で表示されます (または、「alert2:」のみ、つまり、
store_categories
配列に値を表示できません)。
だから、これは私の質問です:
- alert2 に
store_categories
配列が表示されないのはなぜですか? store_categories
送信ボタンをクリックしたときに配列に値が入るようにするにはどうすればよいですか?
助けてくれてありがとう。