javascript
  • php
  • jquery
  • ajax
  • forms
  • 2016-10-01 129 views 1 likes 
    1

    添加参数的形式行动,我有以下形式没有AJAX如何在阿贾克斯

    echo " 
    
    <form action='upload_Comment.php?post_id=$post_id' method='post' id='comments'> 
    
    <textarea class='form-control' name='comment' rows='1'></textarea> 
    
    <input type='submit' name='post_comment'> 
    </form> 
    
    
        "; 
    

    工作正常,但我需要使用Ajax来阻止该网页的表单提交时重装。

    $(document).ready(function(){ 
        $('#comments').on('submit', function(e) { 
        e.preventDefault(); 
    
        $.ajax({ 
         url: "upload_comment.php?post_id= + post_id ", 
         type: "POST", 
         data: new FormData(this), 
         dataType : 'json', 
         contentType: false, 
         processData: false, 
         success : function(data){     
               console.log(data); 
    
             }, 
             error: function(){alert('Error!')} 
        }) 
    
        }); 
    }); 
    

    我需要一种方法来我每次提交新文章时,通过$ POST_ID参数值和POST_ID对每个岗位独特。可以有人请帮助我如何以ajax形式传递该post_id参数url

    +0

    如果它是一个服务器端的变量,将其放置在一个隐藏的输入,而不是行动的查询字符串 – adeneo

    +0

    我曾尝试在隐藏字段中传递$ post_id值,但它只拾取数据库中的第一个帖子ID,并非特定于发布提交 – chris

    +0

    您可能想尝试给会话变量。通过在显示表单之前在会话var中设置发布ID,并直接在处理程序中拾取它,upload_comment.php而不使用查询字符串。 – nocturns2

    回答

    0

    您不应该混合发送POST和GET请求,因为GET用于GET信息,不能将其传入。 您的代码可能应该是这样的:

    var fData = new FormData(this); 
    fData.append('post_id', post_id); 
    

    而且,阅读本:HTTP POST with URL query parameters -- good idea or not?

    "upload_comment.php?post_id= + post_id " 
    

    应该像这样(严重的是,不这样做):

    "upload_comment.php?post_id=" + post_id 
    
    0

    以隐藏费尔德和assifn的帖子ID的价值到它

    <textarea class='form-control' name='comment' rows='1'></textarea> 
    <input type="hidden" value="<?=$post_id;?>" id="postId"> 
    <input type='submit' name='post_comment'> 
    </form> 
    

    和JS代码将

    $(document).ready(function(){ 
    $('#comments').on('submit', function(e) { 
    e.preventDefault(); 
    var post_id =$('#postId').val(); 
    $.ajax({ 
        url: "upload_comment.php?post_id=" + post_id, 
        type: "POST", 
        data: new FormData(this), 
        dataType : 'json', 
        contentType: false, 
        processData: false, 
        success : function(data){     
              console.log(data); 
    
            }, 
            error: function(){alert('Error!')} 
    }) 
    
    }); 
    }); 
    
    +0

    我试过这个,但是$ post_id的隐藏值总是被选为1,并且每个表单提交的帖子ID都不同,因为它在循环中 – chris

    +0

    这是我的错误url:“upload_comment.php?post_id =”+ post_id而不是网址:“upload_comment.php?post_id = + post_id” –

    相关问题