问题描述
所以我有这个code到POST使用PHP和AJAX的数据,而无需重定向页面,我使用的登录页面上相同的脚本。登录页面就像一个魅力,但其他网页没有。它们之间唯一的diffeence是登录PHP脚本网页使用了如果(空($ _ POST)=== FALSE){}
和其他页面中使用如果(使用isset($ _ POST ['保存,设置'])){}
。我不知道该怎么做。这里下面是我使用的脚本。
So I have this code to POST data with PHP and AJAX without redirecting page, I'm using the same script on the login page. The login page works like a charm but the other pages don't. The only diffeence between these is that login php script page uses if (empty($_POST) === false) {}
and the other pages use if (isset($_POST['save-settings'])) {}
. I don't know what do to.. Here below is the script I'm using.
HTML按钮
<input id="save-settings" class="submit" type="submit" name="save-settings" value="Save" onclick="return false;" />
js脚本
$(document).ready(function() {
$("#save-settings").click(function() {
var name = $("#webname").val();
var charset = $("#webchar").val();
var meta = $("#webmeta").val();
var description = $("#webdesc").val();
var startsite = $("#webstartsite").val();
var starturl = $("#webstartsiteurl").val();
var footer = $("#webfooter").val();
$.post("../lib/action.php", {
name: name,
charset: charset,
meta: meta,
description: description,
startsite: startsite,
starturl: starturl,
footer: footer
}, function(data) {
$("#gy-main-notification-bar").hide().html("<h1>!</h1><h2>" + data + "</h2>").slideDown(500);
setTimeout(function() { $("#gy-main-notification-bar").slideUp(500) }, 2500);
});
});
});
PHP脚本
PHP SCRIPT
if(isset($_POST['save-settings'])) {
$updatesettings = "UPDATE `settings` SET
`name`='".escape($_POST['webname'])."',
`charset`='".escape($_POST['webchar'])."',
`meta`='".escape($_POST['webmeta'])."',
`description`='".escape($_POST['webdesc'])."',
`startsite`='".escape($_POST['webstartsite'])."',
`starturl`='".escape($_POST['webstartsiteurl'])."',
`footer`='".escape($_POST['webfooter'])."'
WHERE `id`= 1";
if ($update_settings = $db_connect->query($updatesettings)) {}
echo 'Success!';
}
我真的不希望更改使用isset
到空
在适当的事实,我有脚本我所有的的onclick
脚本在一个action.php的文件。当我删除的onclick =返回:假;
从输入它的作品。我很困惑我并欣赏任何帮助。
I don't really want to change the isset
to empty
in the script due the fact that I have all my "onclick"
script in one action.php file. When I remove onclick="return:false;"
from input it works.. I'm so confused I appriciate any help!
推荐答案
您忘了,包括后期保存,设置。你或许应该已经与阿贾克斯后这样它包括:
You Forgot to include the post save-settings. You probably should've included it with the ajax post like this:
$.post("../lib/action.php", {
'name': name,
'charset': charset,
'meta': meta,
'save-settings': true,
'description': description,
'startsite': startsite,
'starturl': starturl,
'footer': footer
},
在您的SQL语句改变这种正确的岗位
change this in your sql statement for the correct posts
`name`='".escape($_POST['name'])."',
`charset`='".escape($_POST['charset'])."',
`meta`='".escape($_POST['meta'])."',
`description`='".escape($_POST['description'])."',
`startsite`='".escape($_POST['startsite'])."',
`starturl`='".escape($_POST['starturl'])."',
`footer`='".escape($_POST['footer'])."'
WHERE `id`= 1";
这篇关于用PHP通过AJAX,无刷新页面发送形式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!