Przsyłanie zmiennej

Wszystko związane ze skryptami JS, DHTML itd.
l2pl
Posty: 3
Rejestracja: 19 sie 2013, 17:22:59
Płeć: Niewybrana
User Agent: Chrome Windows

Przsyłanie zmiennej

Post autor: l2pl »

Witam, siedzę już dosyć długo nad pewnym małym drobiazgiem, który nie daje mi spać ;/ Otóż chciałbym przesłać zmienna(tablice) z php do js. Obecnie wykonuję to w ten sposób:


Kod: Zaznacz cały

<?php echo '<script type="text/javascript">zmienna = '.$zmienna.';</script>'; ?>


Natomiast tworzy to pewien malutki problem, iż zmienna jest widoczna od tego miejsca i skrypt w js musi znajdować się pod tym.

Buduję dosyć skomplikowany skrypt i zależy mi na tym, aby wszystko miało ręce i nogi. Dlatego nie chciałbym mieć strony przeplatanej na zmiane kodem js i php.

Dlatego moje ptyanie do was, czy istnieje jakiś sposób, aby zmienna była widoczna w całym skrypcie js?
Awatar użytkownika
Fineas_Nigellus
Posty: 582
Rejestracja: 08 lis 2012, 17:33:45
Płeć: Niewybrana
User Agent: Opera Mobile Android 240x301

Re: Przsyłanie zmiennej

Post autor: Fineas_Nigellus »

l2pl, są 2 typy zmiennych jeśli chodzi o ich 'widoczność'. Jeden konkretny blok lub żeby zmienna dotyczyła całego pliku. :-)
Mówimy STOP Reklamie-Sygnaturce! ;)
l2pl
Posty: 3
Rejestracja: 19 sie 2013, 17:22:59
Płeć: Niewybrana
User Agent: Chrome Windows 1920x1080

Re: Przsyłanie zmiennej

Post autor: l2pl »

Problem w tym iż przenoszę zmienną z php, Wtedy wartość jest widoczna od linijki gdzie wpisuje(tak mi się wydaje :)). Chodzi mi o pierwsze ładowanie strony, w takim sensie iż wszystko ma się wykonać za pierwszym razem. Przesyłam zmienną do JS i chciałbym, aby JS wykonał pewne działania na stronie. Wszystko musi być podczas wchodzenia na strone.

Po za tym samo pojawienie się takiego problemu mnie zaintrygowało.
Nie chcę aby wyglądało to następująco:

Kod: Zaznacz cały

<script type="text/javascript">
...
</script>
<?php 
...
 ?>
<script type="text/javascript">
...
</script>
<?php 
...
 ?>
itd.
Awatar użytkownika
zapiter
Posty: 22
Rejestracja: 24 lip 2013, 09:56:04
Lokalizacja: Warszawa
Płeć: Niewybrana
User Agent: Firefox Windows 1280x1024

Re: Przsyłanie zmiennej

Post autor: zapiter »

Proponuję użyć ajaxa i json-a, najprościej z wykorzystaniem jQuery.
Podczas ładowania strony wysyłasz ajaxową metodą żądanie wykonania jakiegoś skryptu php on zwraca dane w postaci tablicy json. I z taką tablicą robisz sobie co chcesz w js (w twoim przypadku wszystkie dane są już w zmiennych więc nie są widoczne).

Szybki poglądowy przykład:

Kod: Zaznacz cały

/* po stronie przeglądarki */
$.ajax({
   type: "POST",
   url: "ajax.php",
   data: {email: "test@test.pl",haslo: "moje_haslo"}
   }).done(function( msg ) {
      msg = jQuery.parseJSON(msg);
      if(msg.ok){
         console.log(msg.ok);
   } else if(msg.error) {
         console.log(msg.error);
   }                        
});

/* po stronie serwera */
<?php
                
$post = $_POST;

if(!checkEmail($post['email']))
   $msg['error'] = 'Błedny email';
                    
if(!checkPassws($post['haslo']))
   $msg['error'] = 'bledne haslo';    
                
if(!$msg['error'])
   $msg['ok'] = 'wszystko jest ok';
                
json_encode($msg);
exit();

?>    
Życie jest za krótkie aby bezpiecznie wysuwać urządzenia USB...
l2pl
Posty: 3
Rejestracja: 19 sie 2013, 17:22:59
Płeć: Niewybrana
User Agent: Chrome Windows 1920x1080

Re: Przsyłanie zmiennej

Post autor: l2pl »

Bardzo dziękuję wszystkim odpowiadającym za pomoc.
Temat jest już chyba wyczerpany :)
ODPOWIEDZ