繁体   English   中英

在表单提交上,执行一些 PHP 然后执行 Javascript 代码

[英]On Form submit, execute some PHP and then Javascript code

这就是我想要做的:提交表单时(通过单击按钮)

  1. 我想使用 PHP 在 MySQL 数据中插入一些数据
  2. 基于插入的成功,我想运行一些 JavaScript(JS) 代码。 (实际上,将使用 AJAX 从 JS 数组插入更多数据,但在下面的测试代码中,我只是用数组显示警报)。 另外,我需要先执行 PHP,因为我需要使用mysqli_insert_id()函数通过 PHP 从 MySQL 获取 autoincremetn 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数组具有其值?

在此先感谢您的帮助。

可能有效 试试吧。 我认为提交表单时只会显示第二个警报。

<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
    } 
        }

        ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM