Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 停止jQuery将整个页面返回到我的div中_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Javascript 停止jQuery将整个页面返回到我的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

因此,我得到了一个表单,它的动作是创建主题解析.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 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上做饭,但很快会尝试一下。谢谢你如此坚定的回应。我会告诉你事情的进展。