2014-10-01 3 views
0

Моя цель - установить, была ли открыта страница с помощью всплывающего окна JavaScript и переносить соответствующую переменную URL на другие страницы. Первоначально я думал, что могу сделать это с помощью переменной URL, однако, поскольку JavaScript работает на стороне клиента, а php - на стороне сервера, нет способа проверить, является ли окно JavaScript-окном, особенно учитывая возможность того, что кто-то вернулся в избранное или закладку.Javascript POST to PHP page

Я изначально сделал аналогичную запись, однако, поскольку идея эволюционировала и застряла с переменной в URL-адресе, это может быть лучшим подходом.

Я думаю, что я выяснил основы, но механики включают JavaScript, с которым я не очень хорошо знаком.

Вот что у меня есть на странице прямо сейчас

<script> 
    function PopupCenter(pageURL, title,w,h) { 

     var left = (screen.width/2)-(w/2); 
     var top = (screen.height/2)-(h/2); 
     var targetWin = window.open (pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left); 

    } 
</script> 

<a onclick="PopupCenter('/customconfig/index.php, 'CustomBuilder1',1080,700);" href="javascript:void(0);"> <img border=0 src = "/images/Animated.GIF"></a> 

Теперь я нашел эту страницу http://mentaljetsam.wordpress.com/2008/06/02/using-javascript-to-post-data-between-pages/

Который говорит мне, как поставить POST в JavaScript с этим кодом:

<script> 
    function postwith (to,p) { 

     var myForm = document.createElement("form"); 
     myForm.method="post" ; 
     myForm.action = to ; 

     for (var k in p) { 
      var myInput = document.createElement("input") ; 
      myInput.setAttribute("name", k) ; 
      myInput.setAttribute("value", p[k]); 
      myForm.appendChild(myInput) ; 
     } 

     document.body.appendChild(myForm) ; 
     myForm.submit() ; 
     document.body.removeChild(myForm) ; 

    } 
</script> 

Конечно, преимущество этого метода заключается в том, что при переходе на первую страницу нет переменной URL, и я также могу переносить значение POST через все страницы PHP.

Мой самый большой вопрос - как слить код для загрузки центрированного окна JavaScript с кодом для передачи переменной POST и заставить их работать вместе.

Это означает, что если кто-то вернется на закладку или в избранное, значение POST будет NULL, и я могу нести это значение NULL через последующие страницы в виде скрытого значения POST.

EDIT --------

Я думаю, мне нужно быть более четким. Я не знаю много о java. Мне нужно совместить существующее всплывающее окно Java, которое центрирует страницу с передачей POST. Это кажется выполнимым и достаточно логичным. Попасть в AJAX, о котором я знаю НИЧЕГО, будет только путать проблему дальше. Я не могу выучить новый язык каждый раз, когда мне нужно решить проблему.

+0

[Java является Javascript как автомобиль для ковра] (http://stackoverflow.com/questions/245062/whats-the-difference-between-javascript-and-java). Не используйте java и javascript взаимозаменяемо, это две ** очень разные вещи. –

ответ

0

Я очень рекомендую использовать что-то вроде jquery, чтобы помочь вам в этом. Вы хотите использовать вызов AJAX вместо отправки HTML-формы.

http://api.jquery.com/jQuery.ajax/

Добавить в верхней части HTML файл сценария JQuery:

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>

Изменить сценарий для отправки AJAX вызова:

<script> function postwith (to,p) { $.ajax({ type: "POST", url: to, data: p }); } </script>

0

Извините, что ответьте на свой вопрос другой ссылкой.Но это поможет :)

Вот ссылка: Window.open and pass parameters by post method

Посмотрите на это ответить на самые корыстные:

var form = document.createElement("form"); form.setAttribute("method", "post"); form.setAttribute("action", "openData.do"); 
 
    
 
    form.setAttribute("target", "view"); 
 
    
 
    var hiddenField = document.createElement("input"); hiddenField.setAttribute("type", "hidden"); hiddenField.setAttribute("name", "message"); hiddenField.setAttribute("value", "val"); form.appendChild(hiddenField); document.body.appendChild(form); 
 
    
 
    window.open('', 'view'); 
 
    
 
    form.submit();

Я надеюсь, что вы выяснить! Дай мне знать, если тебе еще понадобится помощь!