jquery构造一个字符串并将其作为file的post参数传递

时间:2010-03-16 23:06:01

标签: php javascript jquery

我有这个js代码:

$("#startSearch").live("click", function(event) {
    $("input:checkbox[name='searchId']:checked").each(function() {
        var searchId = $(this).val();
        var host = '';
        $.post("php/autosearch-get-host.php",{sId: searchId},function(data){
            host = 'http://' + data + '/index.php';
        });
        //alert(host);
        $.getJSON(host,{searchId: $(this).val()},function(){
            pagination("php/pagination.php", $('#currentPage').val(), $('#sortBy').val(), $("#sortMode").val(), "autosearch");
        });
    });
});

php文件php/autosearch-get-host.php返回一个包含主机名的字符串。我想要的是从数据库中获取主机,使用字符串连接创建URL并将其作为参数传递给另一个$.post$.post应该像这样使用该网址:

$.getJSON(host,{searchId: $(this).val()},function() {
    pagination("php/pagination.php", $('#currentPage').val(), $('#sortBy').val(), $("#sortMode").val(), "autosearch");
});

2 个答案:

答案 0 :(得分:0)

$("#startSearch").live("click", function(event){
  $("input:checkbox[name='searchId']:checked").each(function(){
    var searchId = $(this).val();
    var host = '';
    $.post("php/autosearch-get-host.php",{sId: searchId},function(data){
      // this code is executed when the POST is finished
      host = 'http://' + data + '/index.php';
      $.getJSON(host,{searchId: $(this).val()},function(){
        pagination("php/pagination.php", $('#currentPage').val(), $('#sortBy').val(), $("#sortMode").val(), "autosearch");
      });
    });
  });
});

答案 1 :(得分:0)

尝试在回调函数中移动该一个请求。由于ajax请求是异步的,因此在调用host时变量''仍将设置为$.getJSON

$("#startSearch").live("click", function(event) {
    $("input:checkbox[name='searchId']:checked").each(function() {
        var searchId = $(this).val();
        var host = '';
        $.post("php/autosearch-get-host.php",{sId: searchId},function(data){
            host = 'http://' + data + '/index.php';
            $.getJSON(host,{searchId: $(this).val()},function(){
                pagination("php/pagination.php", $('#currentPage').val(), $('#sortBy').val(),  $("#sortMode").val(), "autosearch");
            });
        });
    });
});