Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wysyłanie zmiennych poprzez java script
PcPablo
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 20.10.2002
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Mam taki kod java script:

function wyslij(form) {
var dat = document.forma;
if (!kontrola(form))
return false
link=elementyForm('wyslij_piwo.php', form);
window1=window.open(link,'target','toolbar=no,scrollbars=no,directories=no,status=no,menubar=no,resizable=no,wi
th=500,height=500');
clear_message();
wstawcookie(1);
window1.focus();
return false
}

Jest on potrzebny do wysłania zmiennych z formy do pliku wyslij_piwo.php po uprzednim sprawdzenieu poprawności wypęłnienia pól kontrola(form).
Po pierwsze to on nie chce działąć, po drugie to chciałbym żeby scrypt nie otwierał nowego okienka, tylko żeby w tym samym oknie otworzył strone wyslij_piwo.php


--------------------
Respect Yourself!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
e-Gandalf
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 195
Pomógł: 0
Dołączył: 7.07.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


1) nie dziala poniewaz uzywasz jakis potworkow zamiast standardow.
a) referencje do formularza uzyskujesz przez document.forms['nazwa'].
cool.gif referencje do jego pol przez document.forms['nazwa'].elements['nazwaPola']

Nie wiem co to za funkcja "kontrola" i czy ona istnieje u Ciebie.
Nie wiem co to za funkcja elementyForm i czy ona istnieje u Ciebie
Nie wiem co to za funkcja wstawcookie i czy ona istnieje u Ciebie

2) Zeby nie otwierac nowego okna zamiasy window.open('adres') daj document.location.href="adres";


--------------------
"(...)Zrozumienie wymagaloby od Ciebie odrobiny pokory. A dzis, w dobie
obalania autorytetu i udowadniania, ze doswiadczenie jest niepotrzebnym
balastem, to jest niemodne.(...)"
Go to the top of the page
+Quote Post
jareks
post
Post #3





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.03.2004

Ostrzeżenie: (0%)
-----


Mam na stronie taki kod javasript:
  1. <!--
  2. function displayWindow(url, width, height) {
  3. var Win = window.open(url,"displayWindow",'width=' + width + ',height=' + height + ',resizable=0,scrollbars=no,menubar=no' );
  4. }
  5. //-->
  6. </HEAD>
  7.  
  8. <A HREF=javascript:displayWindow('news/komentarze/dodaj.php',470,370)>Dodaj komentarz</A>


Na tej nowej stronie mam formularz do dodawania komentarzy w systemie newsów. Muszę tam przesłać zmienną o wartości zawierającej numer komentowanego newsa. Jak to zrobić?

Ten post edytował jareks 30.09.2004, 16:10:31
Go to the top of the page
+Quote Post
revyag
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Jeśli dobrze zrumiałem chcesz sie odwołać do zmiennej, która znajduje sie w oknie tworzącym okno z którego sie odwołujesz ? smile.gif
No to robisz to tak:
Kod
opener.nazwa_zmiennej


--------------------
-------------

------
Go to the top of the page
+Quote Post
jareks
post
Post #5





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.03.2004

Ostrzeżenie: (0%)
-----


Opszę to dokładnie, bo moja znajomość javasriptu jest niewielka i nie wiem czy dobrze rozumiem.

Na stronie wyświetlającej newsa mam tak
w ramach <head></head> mam teraz tak:
Kod
<script>
<!--
function displayWindow(url, width, height) {
var Win = window.open(url,"displayWindow",'width=' + width + ',height=' + height + ',resizable=0,scrollbars=no,menubar=no' );
var zmienna = <? print($news); ?>;
}
//-->
</SCRIPT>


Czy to jest kompletne?

W ramach <body></body>:
Kod
<A HREF=javascript:displayWindow('news/komentarze/dodaj.php',470,370)>Dodaj komentarz</A>


Czy tyle wystarczy?

zmienna - pobiera z bazy danych informację o numerze komentowanego newsa i ta właśnie informację chcę przesłać do okna (za pomocą javasriptu), w którym mam formularz do dowania komentarza.

Na stronie z formularzem dodającym komentarz (okno tworzone u mnie przez javascript):
Tu podaje niezbędne informacje z formularza do komentowania (autor, e-mail, treść i numer komentowanego newsa), które dalej zapisuje do bazy danych.

Kod
if (isset($wstaw))
{
$autor = mysql_real_escape_string(HTMLSpecialChars($_POST['autor']));
$email = mysql_real_escape_string(HTMLSpecialChars($_POST['email']));
$tresc = mysql_real_escape_string(HTMLSpecialChars($_POST['tresc']));
$newsid = //[b]Co mam tu wpisać?[/b]

//Tu dodaje komentarz do bazy
}


Dane przekazywane z formularza to żaden problem, bo wszystko dzieję się w obrębie tego samego pliku. Jednak numer newsa muszę przekazać tu za pomocą javasriptu ze strony newsa (kliknięcie w link Dodaj komentarz).
Go to the top of the page
+Quote Post
revyag
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Jeżeli zadeklarujesz zmienną w javascript jako globalną to nie musisz jej przekazywać, bo masz do niej dostęp z okien, które tworzysz z poziomu okna macierzystego w którym masz tą zmienną zadeklarowaną.
Mieszasz javascript i php. Nie wiem czy zadziała to wszystko co sobie wymyślileś, bo trzeba będzie wyskakiwać z php, walnąć skrypt i znowu wrócić. Nie robiłem czegoś takiego.
Ale jeśli to działa to stronie z formularzem musisz napisać po zmienną $newsid przypisać
Kod
opener.zmienna

Być może to zadziałą, ale jeśli to są głupoty to sory:
Kod
<?
if (isset($wstaw))
{
$autor = mysql_real_escape_string(HTMLSpecialChars($_POST['autor']));
$email = mysql_real_escape_string(HTMLSpecialChars($_POST['email']));
$tresc = mysql_real_escape_string(HTMLSpecialChars($_POST['tresc']));
$newsid = ?><script>opener.zmienna</script><?

//Tu dodaje komentarz do bazy
}
?>


--------------------
-------------

------
Go to the top of the page
+Quote Post
jareks
post
Post #7





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.03.2004

Ostrzeżenie: (0%)
-----


No i to pomieszanie php z javasript stanowi tu chyba problem.

Po wpisaniu tak jak podałeś wywala bład. Próbowałem kombinować inaczej, bez skutku.

Jak to zapisać poprawnie?
  1. $newsid = ?><script>opener.zmienna</script><?


Czy ktoś pomoże?
Go to the top of the page
+Quote Post
revyag
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Chyba nie da się tego zapisać poprawnie, ponieważ javascript działa po stronie klienta, jest interpretowany przez przeglądarkę użytkownika, a php po stronie serwera, więc takie przekazywanie zmiennych ma małe szanse powodzenia. Najlepiej będzie jak zrobisz to tylko przy użyciu php.


--------------------
-------------

------
Go to the top of the page
+Quote Post
jareks
post
Post #9





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 17.03.2004

Ostrzeżenie: (0%)
-----


Ok. Mimo wszystko serdeczne dzięki za chęci.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 15:31