Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wstawienie skryptu js do php
Forum PHP.pl > Forum > PHP
BienuSS
Witam
potrzebuje owy skrypt wsadzić to php

function good(){
$('.success').fadeIn(200).show();
setTimeout(function(){$('.success').fadeOut(500).hide();}, 1500);
};

function bad(){
$('.error').fadeIn(200).show();
setTimeout(function(){$('.error').fadeOut(500).hide();}, 1500);
};

Aczkolwiek nie mam pojęcia jak


albo druga opcja chciałem wywołać tą funkcje w php:

Kod
echo"<script>good();<script>";


Ale też nie działa sad.gif
trzczy
Zobacz w widoku źródła ctrl+u , czy te skrypty js się dobrze generują. Jeśli zgodnie z intencją, to sprawdź w konsoli js, czy nie ma błędów javascript. Zadaniem php jest tylko dobrze wygenerować te skrypty w kodzie html.
Cytat(BienuSS @ 24.11.2017, 23:41:26 ) *
nie mam pojęcia jak
Tak jak tą funkcję good, czyli przez
BienuSS
Skrypty dobrze sie regenerują, nie ma żadnego błędu w konsoli, chce wywołać ta funkcje po wpisaniu rekordów do pazy danych ale no nic sie nie dzieje sad.gif
viking
Funkcja ma coś zwrócić / wyświetlić. U ciebie wali błędem składniowym.
echo '$('.success').fadeIn(200).show();....';
BienuSS
Czyli co dokładnie mam poprawić ?
viking
Masz wstawić echo tak jak ci pokazałem.
BienuSS
Wstawiłem tak:
  1. echo '<script>$(".success").fadeIn(200).show();</script>';
i dalej nic
viking
Co widzisz w źródle strony?
Na pewno to jest funkcja PHP a nie JS? Bo coś mi się wydaje że tu mieszasz.
BienuSS
Powiem inaczej to jest wrzucone do index.php:
  1. <script type="text/javascript">
  2.  
  3. function good(){
  4. setTimeout(function(){$('.success').fadeIn(200).show();},600);
  5. setTimeout(function(){$('.success').fadeOut(1000).hide();},2500);
  6. };
  7.  
  8. function bad(){
  9. setTimeout(function(){$('.error').fadeIn(200).show();},600);
  10. setTimeout(function(){$('.error').fadeOut(1000).hide();},2500);
  11. };
  12. </script>


A to jest w php gdzie chce żeby kod sie wywołał:
  1.  
  2.  
  3. <?php
  4. require("Db.class.php");
  5.  
  6. $db = new Db();
  7.  
  8.  
  9. $a = ...
  10. $b =...
  11. $c = ...
  12.  
  13. $db->...
  14. $d = $db->....
  15.  
  16.  
  17. if ( ... )
  18.  
  19. {
  20. if( ...)
  21.  
  22. {
  23.  
  24. $insert = ...
  25. $update =...
  26. $update_1 = ...
  27.  
  28. echo '<script>good();</script>';
  29. }
  30.  
  31. else
  32.  
  33. {
  34. echo '<script>bad();</script>';
  35. }
  36.  
  37. }
  38.  
  39. else
  40.  
  41. {
  42. echo '<script>bad();</script>';
  43. }
  44.  
  45.  
  46. ?>
  47.  
viking
Samo coś takiego będzie działać.

  1. <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
  2. <script type="text/javascript">
  3.  
  4. function good(){
  5. setTimeout(function(){$('.success').fadeIn(200).show();},600);
  6. setTimeout(function(){$('.success').fadeOut(1000).hide();},2500);
  7. };
  8.  
  9. function bad(){
  10. setTimeout(function(){$('.error').fadeIn(200).show();},600);
  11. setTimeout(function(){$('.error').fadeOut(1000).hide();},2500);
  12. };
  13. </script>
  14. <div class="success">aaaa</div>
  15. <?php
  16. echo '<script>good();</script>';
BienuSS
No właśnie nie działa, ale w hedzie mam coś takiego:
  1. <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
  2. <script type="text/javascript" src="lib/jquery-1.10.2.min.js"></script>


Zaimportowane dwie biblioteki jQuery ponieważ bez tej starszej nie otworzy mi sie pop-up (fancybox).
Ale wydaje mi sie że to nie ma dużego wpływu bo jeśli funkcja działa normalnie jak sie ją wpisze na stronie głównej, a nie działa jak sie wykonuje w tle php


noo a jak wpisz "good();"w ajaxie to też normalnie wywołuje funkcje
viking
Fancybox pracuje na najnowszej wersji. Nie ma powodu żeby v1 osadzić.http://fancyapps.com/fancybox/3/docs/
Ma wpływ. Poczytaj o noConfict
BienuSS
Mam dość.... zmieniłem całego fancyboxa, wywaliłem starą biblioteke jquery i dalej nie działa....
W tym dodatkowym php wprowadzam dane do bazy danych próbowałem już przed mysql_close() i po nim i po prostu nic....
Dodam jeszcze że używam PDO, ale nie wiem czy to ma jakiś wpływ
viking
Wrzuć sobie kod który wkłeiłem http://www.runphponline.com/ Działa. Znaczy że błąd jest gdzieś indziej np w kolejności załadowania DOM i wywolania kodu. Tak na pewno nie powinieneś go pisać robiąc śmietnik po obu stronach.
BienuSS
Dobra jedyne co my przychodzi teraz na myśl to to że w formularzu Ajaxa jest event.preventDefault(); i funkcja echo w php nie działa poprawnie
viking
Skoro to działa przez ajax po co robisz jakieś dziwne kombinacje zamiast odesłać json ze statusem i wiadomością?
BienuSS
Bo nie wiem nawet jak to zrobić
BienuSS
Ogarnąłem to ale nie pasuje mi jedna rzecz bo pomimo napisania tego
Kod
                success: function(data, textStatus, jqXHR) {

                    $('.success').fadeIn(200).show();
                    $('.error').fadeOut(200).hide();
                    setTimeout(function(){$('.success').fadeOut(1000).hide();},1500);
                },

                 error: function(jqXHR, textStatus, errorThrown) {
                    $('.error').fadeIn(200).show();
                    $('.success').fadeOut(200).hide();
                    setTimeout(function(){$('.error').fadeOut(1000).hide();},1500);
                }


Wyświetla tylko funkcje error przy każdej czynnosći

EDIT naprawiłem trzeba było wrzucić to do php
Kod
$response_array['status'] = 'success';    

                        echo json_encode($response_array);



Ale mam inne pytanie czy moge zrobić dwie opcje dla error ? W sensie że są możliwe dwie możliwości
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.