Przsyłanie zmiennej

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

Przsyłanie zmiennej

Postautor: l2pl » 19 sie 2013, 17:26:01

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:



CodeColon Select All Code

<?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
Reputacja: 14
Płeć: Niewybrana
User Agent: Opera Mobile Android 240x301
Kontakt:

Re: Przsyłanie zmiennej

Postautor: Fineas_Nigellus » 19 sie 2013, 19:22:48

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
Reputacja: 0
Płeć: Niewybrana
User Agent: Chrome Windows 1920x1080

Re: Przsyłanie zmiennej

Postautor: l2pl » 19 sie 2013, 19:28:37

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:

CodeColon Select All Code

<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
Reputacja: 1
Lokalizacja: Warszawa
Płeć: Niewybrana
User Agent: Firefox Windows 1280x1024

Re: Przsyłanie zmiennej

Postautor: zapiter » 20 sie 2013, 14:56:28

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:

CodeColon Select All Code


/* 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
Reputacja: 0
Płeć: Niewybrana
User Agent: Chrome Windows 1920x1080

Re: Przsyłanie zmiennej

Postautor: l2pl » 20 sie 2013, 16:48:00

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

Wróć do „JavaScript, DHTML”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość