[英]HTML, jQuery, CSS - Width() returning entire page width instead of div on page load?
[英]Stop jQuery from returning entire page into my div
因此,我有一个具有“ create_topic_parse.php”操作的表单,它将输入值从“ create_topic.php”发送到该输入值,然后将它们插入数据库中。 我可以使用以下代码将所有错误从“ create_topic_parse.php”文件发送到“ create_topic.php”页面中的“ message” div:
$("#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_topic.php?cid =“。$ cid。”&tid =“。$ new_topic_id。” &page = 1' 。 如果我不包括上面的jQuery,那么效果很好。
问题:如果包括jQuery脚本,它将整个'view_topic.php / etcetc'页面返回到''中,这很糟糕。
所以问题是,有人知道如何防止将整个页面发布到此div中,并且在正确提交表单后实际上将用户重定向到“ view_topic.php”页面吗?
注意:我已经尝试过window.location,但是随后我遇到了来自PHP文件中被输入到“ view_topic.php / etcetc” URL中的连续变量的问题。 我正在尝试使其与header('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');
}
});
});
我确定现在可以了。 如果没有,请告诉我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.