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

Funkcja jquery wewnatrz echo.

Object Storage Arubacloud
0 głosów
208 wizyt
pytanie zadane 11 lipca 2018 w PHP przez Kiele Obywatel (1,530 p.)

Czy da sie umiescic funkcje jquery ktora siedzi w osobnym pliku wewnatrz pho'owego echo? Ponizszy kod nie dziala, w konsoli pisze ze funkcja nie zdefiniowana.

echo '<script>$(document).ready(function(){funkcja();});</script>';

Normalny kod przechodzi, ale w celu optymalizacji chcialbym wywolywac same funkcje.

komentarz 11 lipca 2018 przez Mariusz08 Maniak (62,300 p.)
A funkcja znajduje się w tym samym pliku? (Załaduj stronę i zobacz w źródle czy funkcja w ogóle istnieje)
komentarz 11 lipca 2018 przez Kiele Obywatel (1,530 p.)
Nie znajduje sie w zupelnie innym. Mam plik php i js ktore sa podpiete do htmla i z pliku php chce wywolac funkcje ktora jest w pliku js.
komentarz 12 lipca 2018 przez Mariusz08 Maniak (62,300 p.)
Pokaż kod (htmla + php)
komentarz 15 lipca 2018 przez pablop76 VIP (123,120 p.)

@Kiele,

Czy to jest przykład, czy chcesz wywołać taką funkcję? function()

2 odpowiedzi

0 głosów
odpowiedź 15 lipca 2018 przez voltex Obywatel (1,210 p.)
Być może próbujesz wywołać funkcję zanim ją zadeklarujesz. W sensie w chwili wywoływania echo program jeszcze nie wie co to za funkcja. Spróbuj dla testu wczytać plik js w sekcji head html'a. Jak zadziała to już wiadomo gdzie jest błąd i będzie można to zoptymalizować. ;)
0 głosów
odpowiedź 17 lipca 2018 przez Kiele Obywatel (1,530 p.)
<!DOCTYPE html>
<html lang="pl" dir="ltr">
<head>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
	<?php require("funcs.php"); sessionOn();?>
	<div class="container">
		<main class="main-register">
			<h2 class="hidden-header">Treść strony</h2>
			<section class="register-container">
				<h3 class="hidden-header">Rejestracja</h3>
				<form method="POST" class="register">
					<div class="text-container register-login">
						<input type="text" name="regUsername" id="register-login">
						<label for="register-login">Login</label>
					</div>
					<div class="text-container register-password">
						<input type="password" name="regPassword" id="register-password">
						<label for="register-password">Hasło</label>
						<p class="input-helper-text">Jedna duza litera, jedna cyfra i znak specialny.</p>
					</div>
					<div class="text-container register-Rpassword">
						<input type="password" name="regRpassword" id="register-rpassword">
						<label for="register-rpassword">Powtórz hasło</label>
					</div>
					<div class="text-container register-email">
						<input type="text" name="regEmail" id="register-email">
						<label for="register-email">Email</label>
					</div>
					<div class="checkbox-container">
						<input type="checkbox" name="siteRules" id="site-rules" class="settings-checkbox">
						<label for="site-rules" class="checkbox-label">Przeczytałem/am i akceptuję regulamin serwisu</label>
					</div>
					<div class="g-recaptcha" data-sitekey="6Lc_bkEUAAAAAInm8cJ9b7UqiHYtbd_wzaQjUDhM"></div>
					<input type="submit" name="rnu" value="Zarejestruj" class="raised-button rnu">
				</form>
				<div class="register-image">
					<p class="register-image-header">Lorem ipsum dolor sit amet.</p>
					<p class="register-image-description">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa vitae, reiciendis iure dignissimos aspernatur nam.</p>
				</div>
			</section>
		</main>
	</div>
	<script src="js/forms.js"></script>
	<script src="js/mmain.js"></script>
</body>
</html>
	var tfError  = (function(element,message){
		var input = $(element).children("input");
		$(element).children('p').remove();
		$(element).append('<p class="input-error-message">'+message+'</p>');
		$(input).addClass("error");
	});
if(isset($_POST["rnu"])){
	$queryl = $connect->prepare("SELECT Nick,Email FROM users WHERE Nick=:login OR Email=:email");
	$queryl->bindParam(':login',$_POST["regUsername"], PDO::PARAM_STR);
	$queryl->bindParam(':email',$_POST["regEmail"], PDO::PARAM_STR);
	$queryl->execute();
	$llez = $queryl->fetch(PDO::FETCH_ASSOC);
	$validate = true;
	if(!preg_match("@^[a-zA-Z0-9!\@#$^&*()?]{3,}$@",$_POST["regUsername"])){
		$validate = false;
		echo '<script>$(document).ready(function(){$("#register-login").parent().addClass("error");$("#register-login").parent().append(\'<p class="input-error-message">Login musi zawierać minimum 3 znaki</p>\');});</script>';
	}elseif($llez["Nick"]==$_POST["regUsername"]){
		$validate = false;
		echo '<script>$(document).ready(function(){$("#register-login").parent().addClass("error");$("#register-login").parent().append(\'<p class="input-error-message">Login zajęty</p>\');});</script>';
	}
	if(!preg_match("@^(?=.*\d)(?=.*[a-z])(?=.*[\!\@\#\$\%\^\&\*\(\)\_\+\-\=])(?=.*[A-Z])(?!.*\s).{5,}$@",$_POST["regPassword"])){
		$validate = false;
		echo '<script>$(document).ready(function(){$("#register-password").parent().addClass("error");$("#register-password").parent().append(\'<p class="input-error-message">Nie prawidłowe hasło</p>\');});</script>';
	}elseif($_POST["regPassword"] != $_POST["regRpassword"]){
		$validate = false;
		echo '<script>$(document).ready(function(){$("#register-rpassword").parent().addClass("error");$("#register-rpassword").parent().append(\'<p class="input-error-message">Hasła nie są identyczne</p>\');});</script>';
	}
	if(!preg_match("#^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$#",$_POST["regEmail"])){
		$validate = false;
		echo '<script>$(document).ready(function(){$("#register-email").parent().addClass("error");$("#register-email").parent().append(\'<p class="input-error-message">Nie prawidłowy email</p>\');});</script>';
	}elseif($llez["Email"]==$_POST["regEmail"]){
		$validate = false;
		echo '<script>$(document).ready(function(){$("#register-email").parent().addClass("error");$("#register-email").parent().append(\'<p class="input-error-message">Email zajęty</p>\');});</script>';
	}
	if(empty($_POST["siteRules"])){
		$validate = false;
		echo '<script>$(document).ready(function(){$("#site-rules ~ label").css({"color":"#FF6E6E"});});</script>';
	}
	$check = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=6Lc_bkEUAAAAADty11HTQuqdwi6Hhe6dYpXMZ0zl&response='.$_POST["g-recaptcha-response"]);
	if(!json_decode($check)->success){
		$validate = false;
		echo '<script>$(document).ready(function(){$(".g-recaptcha").after(\'<p class="error-message">Potwierdź, że nie jesteś botem</p>\')});</script>';
	}
	if($validate == true){
		$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
		$rand = '';
		for($i=1;$i<=30;$i++){
			$rand .= $characters[mt_rand(0, strlen($characters)-1)];
		}
		$query = $connect->prepare("INSERT INTO users VALUES(NULL,:username,:password,:email,'User','$rand',0)");
		$query->bindParam(':username',$_POST["regUsername"], PDO::PARAM_STR);
		$query->bindParam(':password',password_hash($_POST["regPassword"],PASSWORD_DEFAULT), PDO::PARAM_STR);
		$query->bindParam(':email',$_POST["regEmail"], PDO::PARAM_STR);
		$query->execute();
	}
}

Wiekszosc kodu usunieta w celu czytelnosci, chodzi mi glownie o zoptymalizowanie wyswietlania tych bledow, w tym celu chce uzyc funkcji js w phpowym echo. Domyslam sie ze problem tkwi w umieszczeniu <script> przed zakonczeniem body i z $(document).ready() ale nawet jesli to poprawie mi nie dziala.

Podobne pytania

0 głosów
1 odpowiedź 322 wizyt
pytanie zadane 31 maja 2021 w PHP przez Doge Gaduła (3,370 p.)
0 głosów
1 odpowiedź 318 wizyt
pytanie zadane 17 maja 2019 w PHP przez Moras Obywatel (1,620 p.)
0 głosów
1 odpowiedź 117 wizyt
pytanie zadane 29 stycznia 2019 w PHP przez zerakot Obywatel (1,870 p.)

92,556 zapytań

141,404 odpowiedzi

319,563 komentarzy

61,942 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...