Javascript 停止jQuery将整个页面返回到我的div中
因此,我得到了一个表单,它的动作是创建主题解析.php,它将输入值从创建主题.php发送到该表单,然后将它们插入到数据库中。我可以使用以下代码将'create\u topic\u parse.php'文件中的任何错误发送到我的'create\u topic.php'页面中的'message'div:Javascript 停止jQuery将整个页面返回到我的div中,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,因此,我得到了一个表单,它的动作是创建主题解析.php,它将输入值从创建主题.php发送到该表单,然后将它们插入到数据库中。我可以使用以下代码将'create\u topic\u parse.php'文件中的任何错误发送到我的'create\u topic.php'页面中的'message'div: $("#submit").click( function() { // I've tried e.preventDefault(); here ^ but it's giving the same
$("#submit").click( function() {
// I've tried e.preventDefault(); here ^ but it's giving the same result.
$.post( $("#topic_form").attr("action"),
$("#topic_form :input").serializeArray(),
function(info) {
$("#message").empty();
$("#message").html(info).css('color','#be4343');
});
$("#topic_form").submit( function() {
return false; // Not working
});
});
当表单输入正确且PHP文件没有错误时,PHP脚本应该将用户重定向到'view\u topic.PHP?cid=“.$cid.”&tid=“.$new\u topic\u id.”&page=1'。如果我不包括上面的jQuery,那么它可以正常工作
问题:如果我包含jQuery脚本,它会将整个'view\u topic.php/etcetc'页面返回到“”,这是错误的
所以问题是,是否有人知道如何防止整个页面被发布到这个div中,并在表单正确提交时将用户重定向到“view_topic.php”页面
注意:我尝试了window.location,但是我已经解决了PHP文件中输入到“view_topic.PHP/etcetc”url的相关变量的问题。我试图让它与头('location:…')一起工作,就像不包括jQuery文件时一样
提前感谢,
里奇
解决方案:
jQuery+Ajax到PHP:
if($('#topic_title').val() == ''){
$('#message').html("You need to give your topic a title.");
}
使用这段代码,我可以检查每个数据条目是否存在,当所有数据值都存在时,我会在同一个文件中运行AJAX脚本,将每个值传递到一个变量中,如下所示:
var submit = $('#submit').val();
var topic_title = $('#topic_title').val();
$.ajax({
type: "POST",
url: "create_topic_parse.php",
data: {submit:submit, topic_title:topic_title),
等等。试试这个。会有用的
表单正确提交后,只发送一些字符串,如“correct”,在jquery中,您可以检查输出字符串。如果它是“正确的”,则通过javascript将其重定向到查看主题
如果您想将用户重定向到从服务器发送的特定页面,那么可以从服务器发送json格式的类似内容
在服务器上编写类似这样的代码
if ($condition==true) {
$ajax_return = array(
'message' => 'correct',
'url' => 'your_redirect_url'
);
}
else
{
$ajax_return = array(
'message' => 'your user defined error message',
'url' => 'leave it blank'
);
}
$ajax_return = json_encode($ajax_return);
echo $ajax_return;
现在是create_topic.php页面上的jquery
$("#topic_form").submit( function(e) {
e.preventDefault();
$.post(
$("#topic_form").attr("action"),
$("#topic_form :input").serializeArray(),
function(info) {
info= JSON.parse(info);
if(info.message="correct"){
window.location=info.url;
}
else{
$("#message").html('');
$("#message").html(info).css('color','#be4343');
}
});
});
我相信现在它会起作用的。如果没有,请告诉我。试试这个。会有用的
表单正确提交后,只发送一些字符串,如“correct”,在jquery中,您可以检查输出字符串。如果它是“正确的”,则通过javascript将其重定向到查看主题
如果您想将用户重定向到从服务器发送的特定页面,那么可以从服务器发送json格式的类似内容
在服务器上编写类似这样的代码
if ($condition==true) {
$ajax_return = array(
'message' => 'correct',
'url' => 'your_redirect_url'
);
}
else
{
$ajax_return = array(
'message' => 'your user defined error message',
'url' => 'leave it blank'
);
}
$ajax_return = json_encode($ajax_return);
echo $ajax_return;
现在是create_topic.php页面上的jquery
$("#topic_form").submit( function(e) {
e.preventDefault();
$.post(
$("#topic_form").attr("action"),
$("#topic_form :input").serializeArray(),
function(info) {
info= JSON.parse(info);
if(info.message="correct"){
window.location=info.url;
}
else{
$("#message").html('');
$("#message").html(info).css('color','#be4343');
}
});
});
我相信现在它会起作用的。如果没有,请告诉我。我认为
window.location='view\u topic.php'
有什么问题吗?你能详细说明或通过代码说明这是什么吗?我将变量连接到我的标题('location…),在提交表单时由PHP脚本给出。然后,所有内容都被输入数据库。在php页面上,您应该使用echo json\u encode($array\u with\u variables)
将这些变量回送到json字符串中,然后当当前页面收到该字符串时,它会将json数组解析为一个对象,然后使用window.location='view'\u topic.php?cid='+Parsed.cid+'&tid='+Parsed.tid+'&page=1'
,当前窗口将重新加载$\u GET
中的正确变量。如何将json编码返回到.js文件中对不起,我以前从未使用过json。认罪。>_见下面的答案。他们只是写下了我说的话(不是确切地说我会怎么做,但或多或少)。我认为window.location='view\u topic.php'
有什么问题吗?你能详细说明或通过代码说明这是什么吗?我将变量连接到我的标题('location…),在提交表单时由PHP脚本给出。然后,所有内容都被输入数据库。在php页面上,您应该使用echo json\u encode($array\u with\u variables)
将这些变量回送到json字符串中,然后当当前页面收到该字符串时,它会将json数组解析为一个对象,然后使用window.location='view'\u topic.php?cid='+Parsed.cid+'&tid='+Parsed.tid+'&page=1'
,当前窗口将重新加载$\u GET
中的正确变量。如何将json编码返回到.js文件中对不起,我以前从未使用过json。认罪。>_见下面的答案。他们只是把我说的写了出来(不完全是我会怎么做,但或多或少)。谢谢,但我担心它仍然会在提交成功后将“view_topic.php?cid=“.cid.”tid=“.new_topic_id.”&page=1”返回到(“#message”)div中。我只是在atm上做饭,但很快会尝试一下。谢谢你如此坚定的回应。我会让你知道它是如何运行的。谢谢,但我担心它仍然会在提交成功后将“view_topic.php?cid=“.$cid.”tid=“.new_topic_id.”&page=1”返回到('#message')div中。我只是在atm上做饭,但很快会尝试一下。谢谢你如此坚定的回应。我会告诉你事情的进展。