2016-04-21 58 views
1

我正在使用此代码获取功能,它完美地工作。我用这个函数获取数据。带功能的Ajax POST

function getdata(getdatafrom, resultclass){ 
    $.get(getdatafrom, function(data) { 
     $(resultclass).html(data); 
    }); 
} 

但我需要这个post方法。我得到输入与这个get方法我必须发布它。它看起来像这样。

function postdata(postdatafrom, inputnamesvaluelist){ 
    $.post(postdatafrom, function(data) { 
     $(resultclass).html(data); 
    }); 
} 

我将这段代码输入类似输入名称:

onclick="postdata(post.php,input1-input2-input3)" 

而且它会张贴此输入。我怎样才能做到这一点?

+0

'resultclass'在'postdata'函数中是'undefined',除非它是在别处定义的,而在'getdata'函数中它明确作为参数传递。它的目的是?此外,服务器是否准备好正确处理发布请求? – briosheje

+0

不,不我不想要任何结果班?它会改变输入名称张贴..就像我给的onclick =“”示例.. – user3715993

+0

我很难理解你想要做什么,但你不想包括你的文章的一些数据请求? '$ .post(postdatafrom,inputnamesvaluelist,function(data){...' [Documentation](https://api.jquery.com/jquery.post/) – neilsimp1

回答

1

如果你想做到这一点使用内联事件,你应该添加单引号:

onclick="postdata('post.php', '#input1-#input2-#input3')" 

那么你的JS应该是:

function postdata(postdatafrom, inputnamesvaluelist){ 
    var inputs_ids = inputnamesvaluelist.split('-');//split string passed into array of ids 
    var parameters={}; 

    //construct obejct of {name: value,..} that you could pass it in post request 
    $.each(inputs_ids, function(index, input_id){ 
     var input_name = $(input_id).attr("name"); 
     var input_value = $(input_id).val(); 

     parameters[input_name]=input_value; 
    }) 

    //post parameters to given "postdatafrom" 
    $.post(postdatafrom, parameters, function(data) { 
     //Your code here 
    }); 
} 

希望这有助于。