2015-07-22 2 views
0

Я новичок в Javascript. На самом деле у меня есть функция Javascript.изменить функцию javascript, чтобы страница php появлялась как всплывающее окно

function addHyperlink(val,row){ 
     var temp = row.id; 
      var temp2 = row.assignee; 
      var temp3 = row.status; 
      var temp4 = row.area; 
      var temp5 = row.product; 
      var temp1 = '<?php echo $_SESSION['username']; ?>'; 

      var redirect="edit_comments.php?id=" + temp + "&username=" + temp1 + "&assig=" + temp2 + "&stat=" + temp3 + "&areaa=" + temp4 + "&prod=" + temp5; 
return '<a href="' + redirect + '" >Edit Remarks</a>'; 
} 

если я нажимаю на «Edit Замечания» гиперссылке он будет перенаправлять на «edit_comments.php» страницу с параметрами. он работает нормально. Теперь я хочу изменить функцию так, чтобы, щелкнув гиперссылку «Редактировать примечания», страница «edit_comments.php» открывается как всплывающее окно вместо новой вкладки или нового окна.

Может ли кто-нибудь помочь мне в том, что мне нужно изменить в этой функции?

Заранее спасибо.

Br, Mahadev

+0

использование window.open и установить URL-адрес – Raghavendra

ответ

1

Вы можете использовать функцию Window.open(), чтобы открыть URL в новом окне, как этот

var myWindow = window.open("http://www.yoururl.com", "", "width=200, height=100"); 

Вы можете найти все свойства, которые можно задать здесь

http://www.w3schools.com/jsref/met_win_open.asp

Голые в виду, многие браузеры будут пытаться предотвратить этот вид всплывающего окна.

Так что в вашем коде вы можете

function addHyperlink(val,row){ 
    var temp = row.id; 
    var temp2 = row.assignee; 
    var temp3 = row.status; 
    var temp4 = row.area; 
    var temp5 = row.product; 
    var temp1 = '<?php echo $_SESSION['username']; ?>'; 

    var redirect="edit_comments.php?id=" + temp + "&username=" + temp1 + "&assig=" + temp2 + "&stat=" + temp3 + "&areaa=" + temp4 + "&prod=" + temp5; 


    return '<a href="#" onclick="window.open(\'' + redirect + '\', \'\', \'width=200, height=100\')">Edit Remarks</a>'; 

} 

Это должно заставить вас идти в правильном направлении, я думаю,

+0

Спасибо за ответ. после добавления кода в php-страницу появится всплывающее окно. но он идет до нажатия на гиперссылку. Не могли бы вы помочь мне, что делать? –

+0

Ah Извинения Я неправильно понял, что вы просили там, я отредактирую свой ответ –

+0

попробуйте изменить, он будет работать – Raghavendra

1

Вы посмотрите на диалоговое решение, где ссылка оказанной внутри IFRAME может элемент. В диалоговом окне не создается новое окно или вкладка, и вы никогда не оставляете свою текущую страницу причиной того, что она останется в фоновом режиме.

Плюс он не попадет в блокировщики всплывающих окон.

Если это то, что вы хотите, вы можете прочитать: How to display an IFRAME inside a jQuery UI dialog

1

вы можете закодировать как этот

function windowOpenner(url) { 
    var myWindow = window.open(url, "window name", "width=200, height=100"); 
//you can add element/tags like this or using createElement 
myWindow.document.write("<input value='close' type='button' onclick='window.close()' />"); 
} 

function addHyperlink(val,row){ 

    var redirect="edit_comments.php"; 

return '<a href="#" onclick="windowOpenner(\''+redirect+'\')">Edit Remarks</a>'; 

} 

document.write(addHyperlink()) 
+0

Это будет передавать строковый литерал 'redirect' в вашу функцию windowOpenner все время, вам нужно вставить значение и выйти из строки. –

+0

да исправлено.спасибо – Raghavendra

+0

@ Andrew Aitken и raghavendra: выше код откроет пустую страницу только с кнопкой «ЗАКРЫТЬ». Страница edit_comments.php не открывается. –

0

UPDATE:Вместо того чтобы показывать результат в всплывающем окне, этот метод использует Modal, который дает аналогичный внешний вид, но также и больше контроля над тем, что вы можете сделать с всплывающим окном, например, сохранить или закрыть информацию во всплывающем окне

Использование Ajax для того, что вы хотите:

HTML Часть: Шаг 1: Создать скрытый DIV с дисплеем: ни одно из свойств и абсолютное положение в центре страницы

Javascript Часть: Шаг 2: Добавить событие Click на «Edit Замечания», и звоните PHP файлы через Ajax, передавая соответствующие параметры

Шаг 3: если Ajax успешно, OnSuccess: сделать скрытый DIV видимым, и добавьте ответ вы получите от Ajax вызова в содержание DIV

-

прямо сейчас ваш Edit Замечание делает так: <a href="redirect_url" >Edit Remarks</a>

изменить его и дать ему ID: <a id="edit_remarks" href="redirect_url" >Edit Remarks</a>

HTML:

<div id="popup" style="display:none;position:absolute;left:35%;top:35%;min-width:80%;min-height:80%;"> 
<div class="popup_content"> 
</div> 
</div> 

JavaScript/JQuery

$('#edit_remarks').click(function(){ 
    $.ajax({ 
     method: 'POST', 
     url: 'edit_comments.php', 
     data: {id: temp, username: temp1 } //(as many variables u want to send) 
    }).done(function(msg){ 
     $('#popup .popup_content').html(msg); 
     $('#popup').show(); 
    }); 

}); 
Смежные вопросы