通过JS使用Ajax php文件提交表单

时间:2015-10-08 16:36:01

标签: javascript php jquery ajax forms

我正在尝试将正常的html表单提交到数据库:

<form method="post" action="#" id="productForm" onsubmit="return submitProduct(this);">

使用上面的代码我调用方法“submitProduct”。此方法的代码是:

function submitProduct(form_ele) {
  var values = $(form_ele).serialize();
  $.ajax({
        url: "forms/ajax/admin/form_modifications.php",
        type: "post",
        data: values,
        success: function (response) {
            alert("Success");
        },
    });
} 

所以使用上面的代码我应该可以进入“form_modifications.php”脚本了吗? 我还没有设法从表单中获取“数据:值”(一旦我弄清楚如何去那里就应该没问题)

在form_modifications.php中我有以下内容(我只想测试它):

chdir(dirname(__FILE__)."/../../..");
require_once("config/config.inc.php");
require_once("init.php");

$sql_test = "INSERT INTO ps_test_product (name) VALUES ('test');";
Db::getInstance()->query($sql_test);

我无法理解为什么但它不起作用。查询没有执行,我找不到我做错了什么。任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

我怀疑可能是ajax没有被解雇,因为你已经说过直接访问form_modification.php工作正常。所以我只能建议你应该做些什么来调试。从那里你会得到更多线索。

第1步:使用html内联onsubmit,所以删除该代码

<form method="post" action="#" id="productForm">
 ...............
</form>

第2步:使用jquery

更改Javascript代码并绑定提交事件
    $( "#productForm" ).submit(function( event ) {
      console.log("I am running");
       var values = $(this).serialize();
       $.ajax({
             url: "forms/ajax/admin/form_modifications.php",
             type: "post",
             data: values,
             success: function (response) {
                  alert("Success");
             },
        });
    });

步骤3:使用谷歌浏览器并单击检查元素,然后单击网络选项卡。现在点击浏览器中的表单提交,填写任何输入,看看是否正在推送帖子请求。

步骤4:点击inspect元素的控制台标签,看看是否&#34;我正在运行&#34;正在打印出来。如果是,则提交事件正在运行。