Я пытаюсь открыть новую вкладку с Php,
header("location:print_register.php?recpt_no=".$recpt_no);
вот так мне нужно открыть две новые вкладки
header("location:print_register.php?recpt_no=".$recpt_no);
header("location:print_generate.php?recpt_no=".$recpt_no);
необходимо открыть две новые вкладки с пропущенными значениями
Невозможно указать окно для открытия в виде вкладки. Открывается ли она как новая вкладка или новое окно, полностью зависит от браузера и его конфигурации. Лучший способ взглянуть на эту ситуацию - не отличить вкладку от окна и перейти оттуда.
Сказав, что, как уже упоминалось ранее, невозможно открыть новое окно через PHP. Функция header()
будет делать не что иное, как перенаправление текущего окна. Вам нужно, чтобы это произошло через стандартную ссылку
<a href="http://www.google.com/" target="_new" />
или JavaScript
window.open('http://www.google.com/');
В вашем конкретном случае вы хотите запустить два, чтобы вы могли сделать это (при условии, что вы можете использовать ссылку), объединив два
<a href="http://www.google.com/" target="_new" onclick="javascript:window.open('http://www.stackoverflow.com/')" />
или запуск через JavaScript. Вот пример, который позволит вам хранить целевые адреса в массиве и запускать их все:
window.onload = function() {
var links = new Array('http://www.google.com/', 'http://www.stackoverflow.com/');
for(var i = 0; i < links.length; i++) {
window.open(links[i]);
}
}
Ссылки не обязательно должны быть абсолютными, поэтому вы можете использовать относительные пути, такие как ./print_register.php?recpt_no=
.
Теперь, поскольку вы тянете часть адреса с PHP, все становится немного сложнее, но не сильно. Вам, в основном, просто нужно использовать PHP для завершения визуализированного JavaScript:
<?php
$recpt_no = 'RN426762';
?>
<html>
<head>
<script>
window.onload = function() {
var links = new Array('./print_register.php?recpt_no=<?php echo $recpt_no; ?>', 'http://www.stackoverflow.com/');
for(var i = 0; i < links.length; i++) {
window.open(links[i]);
}
}
</script>
</head>
<body>
...
</body>
</html>
Вам не нужно включать весь скрипт в echo
PHP. Вместо этого напишите нормальный код и echo
переменные PHP там, где это необходимо. Он сохранит PHP-сторону чистки кода и немного поможет в производительности, но, вероятно, не заметен.
Надеюсь, это поможет. ^^
JSFiddles
С заголовком это просто невозможно. Заголовок перенаправляет вас на страницу.
Что-то вроде этого будет работать:
<a href='xy.php' target='_blank'>text</a>
PHP не может этого сделать, но вы можете сделать что-то очень похожее на JavaScript.
Я выполнил это до использования jQuery со ссылкой и простым таймаутом в 100 мс.
Checkout.
http://jsfiddle.net/hw3t1syz/
наконец, я сам получил anwser
echo "<script type='text/javascript'>
window.open( '/print_register.php?recpt_no=$recpt_no' )
</script>";
используйте его, он откроет новую вкладку