编辑:我找到了获取正确网址的解决方案。 Se the solution in this thread
嗨,我在处理表单时遇到问题,以便将数据保存在MySQL数据库中。我正在使用Wordpress作为CMS。
我使用过这个例子:http://www.ryancoughlin.com/2008/11/04/use-jquery-to-submit-form
我很确定我的问题的根源是我在javascript中使用了错误的网址。错误消息仅返回'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);
}
?>
myscripts.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;
});
}
答案 0 :(得分:0)
使用像http://www.yourwebsite.com/storelocator/process_frm_store.php
这样的绝对路径更安全方面更简单。
否则.ajax方法的url参数应为storelocator/process_frm_store.php
,因为您的.js文件包含在基本路径中并在js
或storelocator
文件夹之外执行
答案 1 :(得分:0)
sl_register.tpl.php 中的 <?php
标记已经 include_once
在 <?php
标签内...除非你做的事我不明白这可能会破坏一些东西。