Откройте страницу PHP из функции JavaScript - PullRequest
1 голос
/ 24 мая 2011

У меня есть страница php, first.php, и я хочу открыть страницу с передачей некоторых аргументов из функции javascript.Не могли бы вы помочь мне, спасибо.

function() {
    var tableName = "<?= $p ?>"; //obtaining the value from another php file
    var checkB = checkbox_form.checkbux[counter].value;
    window.open('"http://localhost/first.php?q="+checkB+"&p="+tableName', '_self');
}

Но я не могу открыть страницу, пожалуйста, помогите.Заранее спасибо.

Ответы [ 4 ]

3 голосов
/ 24 мая 2011

Как указано в предыдущих ответах, вы можете легко использовать window.location, чтобы открыть страницу PHP; тем не менее, вы всегда должны забывать экранировать свои переменные, когда используете их в URL, используя encodeURIComponent() функцию JavaScript:

window.location = "http://localhost/first.php?q=" + encodeURIComponent(checkB) + "&p=" + encodeURIComponent(tableName);
1 голос
/ 29 января 2013

Насколько я понимаю, вам нужно открыть еще одну вкладку или всплывающее окно с некоторыми динамическими параметрами. У меня есть 2 решения для этого:

1 - Присоедините несколько дополнительных JS к щелчку, который пользователь щелкнет, используя событие onMouseOver (), и передайте href ваш вычисленный URL. Цель должна быть установлена ​​на "_blank".

Пример:

<a href="whateverPage.php" target="_blank" onMouseOver="this.href='myPage.php?myParam=' + myParamValue;">Goto new page</a>

Обратите внимание, что в этом примере myParamValue должен быть глобальным.

2 - Вы хотите открыть новую вкладку или всплывающее окно после запроса ajax? В моем случае я хочу создать новую отчетную страницу PHP на сервере и хочу открыть ее немедленно. Предыдущее решение не помогает.

Вот мое решение, чтобы обмануть всплывающие окна:

//this generates the new report page 
report = new ajaxReq("gentabrep.php", ajaxCallBackFunction);
//open the pop-up on user action/event which is normally allowed
w = window.open("", "");
//run ajax request, note I also pass the "w" pop-up reference to the request
report.request("connId=" + connId + "&file=" + file, "POST", [w, file]);

function ajaxCallBackFunction(returnedStr, status, params){
  //I feed the pop-up with the necessary javascript to redirect the page immediately
  params[0].document.writeln("<scr"+"ipt type='text/javaScript'>window.location='reports/" + params[1] + ".php';</scr"+"ipt>");
}
1 голос
/ 24 мая 2011

Это проще, чем вы думаете.

window.location = 'http://localhost/first.php?q=' + checkB + '&p=' + tableName;
0 голосов
/ 24 мая 2011

использование

document.location = 'http://localhost/first.php?q='+checkB+'&p='+tableName;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...