【问题标题】:Javascript redirect. PHP Get request. Browser adress stringJavascript 重定向。 PHP 获取请求。浏览器地址字符串
【发布时间】:2014-04-30 11:56:40
【问题描述】:

我有那个js函数

    function searchRequest(months){
    //base url
    var protocol = window.location.protocol;
    var siteUrl = window.location.host;
    //get months and years 4 link
    var yearToUrl = months.toString().substring(0,4);
    var monthsToUrl = months.toString().substr(-2);
    //calculating months days
    var yearForDays = parseInt(yearToUrl);
    var monthsForDays = parseInt(monthsToUrl);
    var daysToUrl = 33 - new Date(yearForDays, monthsForDays-1, 33).getDate();
    //add months days and year to link
    var lastUrlPart = 'invoices/#_form=42422b080fbce04ec7f431ad4abe6f6495d8f7bf&view=search&predefined_search=2&invoice_date_from=01%2F' + monthsToUrl + '%2F' + yearToUrl + '&invoice_date_to=' + daysToUrl + '%2F' + monthsToUrl + '%2F' + yearToUrl;
    //creating link
    var redirectUrl = protocol + '//' + siteUrl + '/' + lastUrlPart;
    window.location.href = redirectUrl;
}

在网站的其他页面上使用该链接应该启用搜索。但是重定向后它不起作用。此外,当我使用该 url 将光标设置为浏览器地址字符串并单击键盘搜索上的输入时,该链接正常工作。我该如何解决?我需要重定向后的结果。谢谢。

这是我的函数链接http://actamedical.loc/invoices/#_form=42422b080fbce04ec7f431ad4abe6f6495d8f7bf&view=search&predefined_search=2&invoice_date_from=01%2F09%2F2012&invoice_date_to=30%2F09%2F2012的输出

【问题讨论】:

  • 尝试将生成的 redirectUrl 与预期结果(有效的链接)进行比较
  • 链接等于。我之前检查过。
  • 那么实际发生了什么? (..没用)
  • 在我使用 window.location.href = my_link 和 my_link 之后,我的 get 请求没有工作。页面重新加载并且该链接出现在浏览器地址字符串(其正确的链接)中打开的页面,但搜索不起作用。然后我将鼠标光标放在带有 my_link 的地址字符串中,然后单击“输入”我可以看到所需的搜索结果。
  • 仅更改哈希参数(在您的 url 中 # 后面的东西)确实会更改地址(-bar)但不会触发页面重新加载。 (在地址栏中输入时会发生这种情况)

标签: php jquery redirect get


【解决方案1】:

试试

window.location.reload()

更改网址后(希望这不会重新更改)

【讨论】:

  • 没有工作因为链接将我重定向到其他页面,window.location.reload() 工作现在打开的页面。
【解决方案2】:

好的。经过一番脑筋急转弯后,我发现在项目中使用网格系统,我们可以设置活动网格或非活动网格。我的重定向不起作用,因为目标页面有 3 种搜索类型(实时、高级和预定义)。我从预定义的搜索中获取了类似的示例链接,但该搜索未添加到网格系统中,并且网格无法通过使用 get 请求设置为活动状态。就像说'快'我应该触发页面重新加载。我发现要制造一些贪婪,我应该使用 cookie。我为我的请求重写了模板函数并从高级搜索中获取链接。

function openGridTab(el)
{
var url = $(el).attr('href') ? $(el).attr('href') : el;
var place = url.split('/#', 2)[0].split('//')[1].split('/').reverse().shift();
var tab = url.split('#', 2)[1].split('&', 2)[0].split('=', 2)[1];
var search_form_name = $(el).attr('rel') ? $(el).attr('rel') : '42422b080fbce04ec7f431ad4abe6f6495d8f7bf';

switch(place)
{
    case 'tasks':
    {
        //var cookieName = tasksInterface.options['tabs_cookie'];
        var cookieName = 'tsk_flt';
        break;
    }
    case 'requests':
    {
        //var cookieName = requestsInterface.options['tabs_cookie'];
        var cookieName = 'req_flt';
        break;
    }
    case 'invoices':
    {
        //var cookieName = invoicesInterface.options['tabs_cookie'];
        var cookieName = 'inv_flt';
        break;
    }
    default:
    {
        return false;
    }
}

$.cookie(cookieName, tab);

if (tab == 'search')
{
    var params = url.split('&');
    params.shift();

    var form = '<form action="'+ url.split('#')[0] +'" method="get">' +
    '<input type="hidden" name="_form" value="'+ search_form_name +'"/>' +
    '<input type="hidden" name="view" value="search"/>' +
    '<input type="hidden" name="reload" value="1"/>';
    for (var i = 0; i < params.length; i++) {
        var param = params[i].split('=', 2);
        form += '<input type="hidden" name="'+ param[0]  +'" value="'+ param[1]  +'"/>';
    }
    form += '</form>';
    $(form).appendTo('body')[0].submit();
}
else
{
    window.location = url;
}

return false;

}

并重写我的脚本函数...更改 url 并使用我的函数

var lastUrlPart = 'invoices/#view=search&invoice_num=&invoice_amount_from=&invoice_amount_to=&invoice_law=&invoice_report_type=&req_experts_nb=&invoice_patient=&invoice_company=&invoice_client=&invoice_state=&invoice_transaction_date_from=01%2F' + monthsToUrl + '%2F' + yearToUrl + '&invoice_transaction_date_to=' + daysToUrl + '%2F' + monthsToUrl + '%2F' + yearToUrl + '&req_without_appointments=0&invoice_create_date_from=&invoice_create_date_to=&specs_change_request=0&attr_billed=1&attr_paid=0&attr_subtraction=0';
    //creating link
    var redirectUrl = protocol + '//' + siteUrl + '/' + lastUrlPart;
    openGridTab(redirectUrl);

另外,我在想用一些 js 函数来回答我的问题有什么更简单的答案。感谢您的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 2013-03-19
    • 2013-02-14
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    相关资源
    最近更新 更多