我正在创建一个自定义wordpress插件,它有一个前端形式,我希望数据与AJAX一起发送到数据库,并且还返回响应以更新前端表。WordPress前端AJAX表单提交500内部服务器错误
一切看起来不错,直到我点击 “提交” 按钮
所以我的AJAX是:
$('#form').submit(function(event) {
var formData = {
'user' : $('input[name=userid]').val(),
'cardname' : $('input[name=card]').val(),
'setname' : $('input[name=setname]').val(),
'quantity' : $('input[name=quantity]').val(),
'multiverseid' : $('input[name=multiverseid]').val()
};
// process the form
$.ajax({
type : 'POST', // define the type of HTTP verb we want to use (POST for our form)
url : ''+base_url+'/website/wp-content/plugins/test/public/js/process.php', // the url where we want to POST
data : formData, // our data object
dataType : 'html', // what type of data do we expect back from the server
encode : true,
success : function(updatedTable) {
$('div#tableHolder').html(updatedTable);
}
})
});
// stop the form from submitting the normal way and refreshing the page
event.preventDefault();
});
});
的process.php文件,将增加的数据是:
global $wpdb;
$wpdb->insert(
'wp_mycards',
array(
'user' => $_POST[userid],
'cardname' => $_POST[cardname],
'setname' => $_POST[setname],
'quantity' => $_POST[quantity],
'multiverseid' => $_POST[multiverseid]
)
);
$data="<table><tr><td>Image</td><td>Name</td><td>Set</td><td>Quantity</td></tr>";
$user_ID = get_current_user_id();
$cards = $wpdb->get_row("SELECT * FROM $wpdb->wp_mycards WHERE user = ".$user_ID."");
while ($row = mysql_fetch_assoc($cards)) {
$data.='<tr><td align="center"><img src="http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid='.$row[multiverseid].'&type=card" width="30" height="42" /></td><td align="left">'.$row[cardname].'</td><td align="center">'.$row[setname].'</td><td align="center">'.$row[quantity].'</td></tr>';
}
$data.="</table>";
echo $data;
- 我运行它在Firefox和萤火虫它给我500内部服务器错误 - 后值是好的
我已经添加了需要 '的wp-config.php文件' 在顶部,现在它似乎工作...除userid之外的数据都存储在db –
这是一个非常糟糕的做法,至少要添加wp-load.php,而不是wp-config.php。请参阅http://ottodestruct.com/blog/ 2010 /不要-包括-WP-负载请/ – ThemesCreator