• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Edycja javascript za pomocą php

VPS Starter Arubacloud
0 głosów
162 wizyt
pytanie zadane 7 grudnia 2015 w PHP przez artimal Gaduła (4,800 p.)

Witam, w pliku zarejestruj.php ustawiam:

$_SESSION['error2'] = 'tajna treść errora2';

Następnie w index.php:

<?php if(isset($_SESSION['error2'])) echo "<script> var error2=1; </script>" ?>

Chodzi o to, że gdy zmienna error2=1 to kod javascriptu wyświetla błąd. Jeżeli zmienię error2 na wartość 1 w pliku mojefunkcje.js to błąd zostaje wyświetlony więc js działa. Zmienna sesyjna error2 również jest ustawiona i działa ponieważ to sprawdziłem. A więc w czym tkwi problem i dlaczego nie powstaje zmienna js error2 o wartości 1?

Proszę o pomoc, pozdrawiam.

1 odpowiedź

+1 głos
odpowiedź 7 grudnia 2015 przez Szymon Lisowiec Mądrala (7,150 p.)
wybrane 7 grudnia 2015 przez artimal
 
Najlepsza

Najpierw musisz ustalić w index.php zmienną error2, dopiero później załadować skrypt.
 

<script>
   var error2=1;
</script>
<script src="mojefunkcje.js"></script>

Jeżeli tak masz, to sprawdź czy gdzieś w mojefunkcje.js nie ustalasz czasami error2 na null czy coś. Możliwe, że w index.php masz error2=1, a w załadowanym skrypcie jest var error2;

komentarz 7 grudnia 2015 przez artimal Gaduła (4,800 p.)

Właśnie mam z tym problem, że jak nie dam zadeklarowania zmiennej w mojefunkcje.js tonastepnie if podowduje przestanie działania kodu od siebie w dół:
 

	if(error2==1)
	{
		errorarrow[7].style.display = "inline-block";
		error[7].style.display = "inline-block";
		error[7].innerHTML = "Podany login lub email są już zajęte!";
	}
	else
	{
		errorarrow[7].style.display = "none";
		error[7].style.display = "none";
	}  

Gdy dodam przed var error2=1; to wszystko działa i błąd wyskakuje na stronie no ale wiadomo, chcę go wyświetlac jeżeli zmienna sysyjna error2 jest ustawiona. 

komentarz 7 grudnia 2015 przez Szymon Lisowiec Mądrala (7,150 p.)
<?php echo '<script> var error2='.((isset($_SESSION['error2']))?:1:0).'; </script>' ?>

 

komentarz 7 grudnia 2015 przez artimal Gaduła (4,800 p.)

mojefunkcje.js są dodawane na końcu <body> i w nich dodałem:

	if (typeof error2 !== 'undefined') {
    var error2=0;
	}

...posługując się logiką, że jeśli nie zdefiniowano takiej zmiennej czyli błedu nie było to zdefiniuj taką zmienną o wartości 0. NIestety i ten sposób nie działa.

komentarz 7 grudnia 2015 przez artimal Gaduła (4,800 p.)

Dostosowałem wszystko do twojej propozycji lecz chyba gdzieś jest literówka:
Parse error: syntax error, unexpected ':' 

komentarz 7 grudnia 2015 przez Szymon Lisowiec Mądrala (7,150 p.)

!== 'undefined' - gdy zmienna jest zdefiniowana

Trochę mieszasz i słabo Cię rozumiem. Jeżeli dobrze myślę co chcesz uzyskać, to:

if (typeof error2 === 'undefined') {
var error2=0;
}

 

komentarz 7 grudnia 2015 przez Szymon Lisowiec Mądrala (7,150 p.)

Tak, mały błąd. Poprawione:

<?php echo '<script> var error2='.((isset($_SESSION['error2']))?1:0).'; </script>' ?>

 

komentarz 7 grudnia 2015 przez artimal Gaduła (4,800 p.)
Dzięki wielkie, teraz śmiga jak należy :) Już bez żadnego sprawdzania w javascripcie.

Podobne pytania

+1 głos
2 odpowiedzi 126 wizyt
pytanie zadane 31 marca 2022 w PHP przez NoteDS Użytkownik (560 p.)
+1 głos
1 odpowiedź 301 wizyt
pytanie zadane 6 marca 2021 w PHP przez Mateusz Wydra Nowicjusz (240 p.)
0 głosów
1 odpowiedź 717 wizyt
pytanie zadane 4 grudnia 2019 w PHP przez manager96 Bywalec (2,050 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...