0

これは私がやろうとしていることです: フォームが送信されたとき (ボタンをクリックして)

  1. PHPを使用してMySQLデータにデータを挿入したい
  2. 挿入の成功に基づいて、JavaScript(JS) コードを実行したいと思います。(実際には、AJAX を使用して JS 配列からさらにいくつかのデータが挿入されますが、以下のテスト コードでは、単に配列でアラートを表示しています)。また、関数を使用して PHP 経由で MySQL から自動インクリメント ID を取得する必要があるため、最初に PHP を実行する必要がありmysqli_insert_id()ます。
  3. すべてのデータが挿入された後 (または 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>

今起こっていること:

  1. Alert1 はstore_categories配列内のデータを正しく表示しています
  2. しかし、送信ボタンをクリックすると、Alert2 はまだ空白で表示されます (または、「alert2:」のみ、つまり、store_categories配列に値を表示できません)。

だから、これは私の質問です:

  1. alert2 にstore_categories配列が表示されないのはなぜですか?
  2. store_categories送信ボタンをクリックしたときに配列に値が入るようにするにはどうすればよいですか?

助けてくれてありがとう。

4

1 に答える 1

0

かもしれません 試してみてください。フォームが送信されると、2番目のアラートのみが表示されると思います。

<script type="text/javascript">init_filtering()</script>
    <?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
    } 
        }

        ?>
于 2012-11-03T06:25:22.337 に答える