php - 使用 jQuery.ajax 在 MySQL 中存储表单数据

标签 php jquery mysql wordpress

<分区>

编辑:我找到了获取正确 URL 的解决方案。 Se the solution in this thread .

您好,我在处理表单时遇到问题,以便将其数据保存在我的 MySQL 数据库中。我使用 Wordpress 作为 CMS。

我用过这个例子:http://www.ryancoughlin.com/2008/11/04/use-jquery-to-submit-form

我很确定问题的根源是我在 javascript 中使用了错误的 url。错误消息仅返回“undefined”,Firebug 报告页面未找到 404 错误。

那么正确的网址是什么? 任何帮助将不胜感激。

这是我的网站结构:

Mywebsite (folder)      
  sl_register.tpl.php   
  includes    (folder)    
  storelocator (folder)
    process_frm_store.php
    frm_store.php
  js (folder)
    myscripts.js

这是我网站构建的逻辑:

sl_register.tpl.php:

<?php
/*
  Template Name: SL - Register Store
*/  
  get_header();
  include_once 'includes/storeLocator/frm_store.php';
  get_footer();
?>

frm_store.php:

<form id="store_data_form" class="appnitro"  method="post" action="">
  <input id="store_active" name="store_active" type="hidden" value="pending" />
  <input id="store_name" name="store_name" type="text" value=""/> 
  <input id="store_street1" name="store_street1" type="text" value="" />
  <input id="saveForm" class="submitButton" type="submit" name="save" value="Save" />
</form>

process_frm_store.php:

<?php
  $myDB = new DAL(); 
  $myDB->connect();

  if (isset($_POST['save'])) 
  {
    $formData =  array(
      "name"=> mysql_real_escape_string($_POST['store_name']),
      "street1"=> mysql_real_escape_string($_POST['store_street1']),
      "zipcode"=> mysql_real_escape_string($_POST['store_zipcode']));

    $myDB->addNewStore($formData);
  }
?>

我的脚本.js:

jQuery.processForms = function()
{
  jQuery('form#store_data_form').submit(function() 
  {
    var store_name = 'Test store'; //jQuery("input#store_name").val();
    var store_street1 = 'Sesamy street';//Set constant for testing
    var store_zipcode = '0574'; //Set constant for testing
    var dataString = 'name='+ store_name + '&street1=' + store_street1 + '&zipcode=' + store_zipcode;    
    jQuery.ajax(
    {   
      type: "POST",   
      url: "process_frm_store.php",   
      data: dataString,
      error: function(XMLHttpRequest, textStatus, errorThrown) 
      { 
        alert(errorThrown); // Just for debugging
        jQuery('#suggestNewStore div.error').fadeIn(); 
      },
      success: function() 
      {
        alert('It works!');
        jQuery('#suggestNewStore div.success').fadeIn();   
      }   
    });   
    return false;      
  });
}

最佳答案

为了安全起见,使用像 http://www.yourwebsite.com/storelocator/process_frm_store.php 这样的绝对路径会更简单。

否则 .ajax 方法的 url 参数应该是 storelocator/process_frm_store.php 因为你的 ..js 文件包含在你的基本路径中并在 js 之外执行> 或 storelocator 文件夹

关于php - 使用 jQuery.ajax 在 MySQL 中存储表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/852054/

相关文章:

php - 如何使用 pdo 和 php 获取数据

javascript - 使用 JQuery 或 Javascript 预加载网站上的所有图像

javascript - 如何在购物车中拖动新数据后从购物车中删除旧数据

mysql - 在 c 脚本中连接到 mysql?

php - 保持 MySQL 数据库与 PHP 的最小延迟同步

mysql - 从具有最大/最小值的记录中提取值

php - 警告 : session_start() [function. session 开始]:无法发送 session cookie - header 已发送

php - INSERT IGNORE 或 INSERT WHERE NOT IN

javascript - 如何使用 PHP 写入 Javascript 对象

php - 添加简单的基于 jquery 的查看/隐藏更多操作到 ckeditor 中编写的 html 数据