Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [JavaScript][HTML][PHP]Div widoczny po naciśnięciu przycisku
cent4
post 1.09.2010, 19:17:22
Post #1





Grupa: Zarejestrowani
Postów: 415
Pomógł: 0
Dołączył: 24.12.2008

Ostrzeżenie: (10%)
X----


Witam.
Mam przycisk i po jego naciśnięciu wykonuje się pewien javascript (który wywołuje pewne zdarzenia z pliku php)
1. Jak zrobić (co do tego java scriptu dopisać) żeby po naciśnięciu przycisku pojawił się pewien div np. z treścią - "wykonuję skrypt"?
2. A po wykonaniu skryptu - jak zrobić, żeby po wypisaniu pewnych danych z php na jego końcu - ukryć tego div'a z treścią "wykonuję skrypt"?
Go to the top of the page
+Quote Post
IceManSpy
post 1.09.2010, 19:59:48
Post #2





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Nie wiem jak zrobić to w czystym JS ale w jQuery masz do tego funkcję show: http://api.jquery.com/show/ A co do chowania do hide: http://api.jquery.com/hide/ smile.gif Opcjonalnie może być http://api.jquery.com/toggle/ lub http://api.jquery.com/slideToggle/ .


--------------------
Go to the top of the page
+Quote Post
Skie
post 1.09.2010, 20:04:45
Post #3





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

Ostrzeżenie: (0%)
-----


Kod
document.getElementById(id_diva).style.display = "block"; // pokazuje div'a
document.getElementById(id_diva).style.display = "none"; // chowa div'a


--------------------
Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+
Strona Domowa | Elradia MMORPG
FireFox: make the web better.
Go to the top of the page
+Quote Post
cent4
post 1.09.2010, 21:56:06
Post #4





Grupa: Zarejestrowani
Postów: 415
Pomógł: 0
Dołączył: 24.12.2008

Ostrzeżenie: (10%)
X----


jQUERY pięknie działa:

  1. <button>Show it</button>
  2.  
  3. <p style="display: none">Hello 2</p>
  4. $("button").click(function () {
  5. $("p").show("slow");
  6. });
  7. </script


tylko, że ja bym chciał, żeby to działało z przyciskiem z formularza:

  1. <input type="button" name="submit" value="submit" onClick="ajaxget()" />


a nie z przyciskiem: <button>Show it</button>

?

pojawianie się diva już zrobiłem:
  1. <input type="button" name="submit" value="submit" onClick="ajaxget()" id="submit"/>
  2. ....
  3. <p style="display: none"><img src="loading.gif" border="0"></p>
  4. //$("button").click(function () {
  5. $('#submit').click(function(){
  6.  
  7. $("p").show("slow");
  8. });
  9. </script>


a teraz wykonuje się skrypt php i jak na jego końcu po wypisaniu danych ukryć ponownie tego diva?

  1. echo "<script>";
  2. echo " $(\"p\").hide(\"slow\"); ";
  3. echo "</script> ";


powyższy kod nie działa sciana.gif
Go to the top of the page
+Quote Post
kamil4u
post 2.09.2010, 13:15:34
Post #5





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Możliwości jest kilka:
- DOM nie został załadowany (w jQuery to chyba $(document).ready )
- w ogóle nie wczytałeś pliku jQuery

Spr. co zawiera konsola błędów


--------------------
Go to the top of the page
+Quote Post
cent4
post 2.09.2010, 20:21:37
Post #6





Grupa: Zarejestrowani
Postów: 415
Pomógł: 0
Dołączył: 24.12.2008

Ostrzeżenie: (10%)
X----


to jest mój cały plik php:
  1. <?
  2. //echo"<script src=\"jquery-latest.min.js\"></script>";
  3. function checkDomain($domain,$server,$findText){
  4. // Open a socket connection to the whois server
  5. $con = fsockopen($server, 43);
  6. if (!$con) return false;
  7.  
  8. // Send the requested doman name
  9. fputs($con, $domain."\r\n");
  10.  
  11. // Read and store the server response
  12. $response = ' :';
  13. while(!feof($con)) {
  14. $response .= fgets($con,128);
  15. }
  16.  
  17. // Close the connection
  18. fclose($con);
  19.  
  20. // Check the response stream whether the domain is available
  21. if (strpos($response, $findText)){
  22. return true;
  23. }
  24. else {
  25. return false;
  26. }
  27. }
  28.  
  29. function showDomainResult($domain,$server,$findText){
  30. if (checkDomain($domain,$server,$findText)){
  31.  
  32. echo "<tr><td>$domain</td> <td>&nbsp;&nbsp;&nbsp;</td> <td><B>DOSTĘPNA</B><br /></td></tr>";
  33. }
  34. else echo "<tr><td>$domain</td> <td>&nbsp;&nbsp;&nbsp;</td> <td>ZAJĘTA<br /></td></tr>";
  35. }
  36.  
  37. $domena = $_GET['txtname'];
  38.  
  39. echo "<TABLE>";
  40. showDomainResult($domena.".eu",'whois.eu','No match for');
  41. showDomainResult($domena.".pl",'whois.dns.pl','No information about');
  42. showDomainResult($domena.".com",'whois.crsnic.net','No match for');
  43. showDomainResult($domena.".net",'whois.crsnic.net','No match for');
  44. showDomainResult($domena.".org",'whois.publicinterestregistry.net','NOT FOUND');
  45. showDomainResult($domena.".info",'whois.afilias.net','NOT FOUND');
  46. echo "</TABLE>";
  47.  
  48.  
  49. echo "<script>";
  50. echo " $(\"p\").hide(\"slow\"); ";
  51. echo "</script> ";
  52.  
  53. ?>


Części javascript nie działają :-( co muszę zmienić?

Ten post edytował cent4 2.09.2010, 20:22:54
Go to the top of the page
+Quote Post
nospor
post 2.09.2010, 20:27:07
Post #7





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




przekombinowales.
Skoro skrypt php jest wczytany ajaxem i po jego wczytaniu chcesz ukryc diva to musisz to zrobic w zdarzeniu ajaxa a nie w skrypcie który ajaxem wczytales smile.gif

http://api.jquery.com/jQuery.ajax/
Cytat
success is called if the request succeeds. It is passed the returned data, a string containing the success code, and the XMLHttpRequest object.

Cytat
$.ajax({
url: 'ajax/test.html',
success: function(data) {
$('.result').html(data);
alert('Load was performed.');
}
});

zamiast ALERT masz dac ukrycie diva


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
cent4
post 2.09.2010, 20:41:09
Post #8





Grupa: Zarejestrowani
Postów: 415
Pomógł: 0
Dołączył: 24.12.2008

Ostrzeżenie: (10%)
X----


Wstawiłem taki kod na końcu index.html i dalej nie działa:

  1. $.ajax({
  2. url: 'index.html',
  3. success: function(data) {
  4. $('.result').html(data);
  5. $("p").hide("slow");
  6. }
  7. });
  8. </script>


Ten post edytował cent4 2.09.2010, 20:42:30
Go to the top of the page
+Quote Post
Wicepsik
post 2.09.2010, 20:43:31
Post #9





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Bo to jest przykład! sciana.gif Człowieku myśl i czytaj dokumentacje!


--------------------
Go to the top of the page
+Quote Post
cent4
post 3.09.2010, 10:46:30
Post #10





Grupa: Zarejestrowani
Postów: 415
Pomógł: 0
Dołączył: 24.12.2008

Ostrzeżenie: (10%)
X----


Przestudiowałem dokumentację - stworzyłem skrypt ale coś dalej mi nie działa:

  1. $('#loading').hide();
  2. $('#submit').click(function(){
  3. $.ajax({
  4. url: 'basicform.php',
  5. success: function(data) {
  6. $('.result').html(data);
  7. $('#loading').hide("slow");
  8. },
  9. beforeSend: function(){
  10. $('#loading').show();
  11. };
  12.  
  13. })
  14. };


plik html:

  1. <p id="loading" ><img src="loading-mini.gif" alt="" /> pobieranie...</p>
Go to the top of the page
+Quote Post
nospor
post 3.09.2010, 10:49:15
Post #11





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




Cytat
ale coś dalej mi nie działa:
kurde.... ale jakie "coś" ci nie działa. Nie pokazuje sie? Nie chowa sie? komputer dymi?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
cent4
post 3.09.2010, 10:57:11
Post #12





Grupa: Zarejestrowani
Postów: 415
Pomógł: 0
Dołączył: 24.12.2008

Ostrzeżenie: (10%)
X----


podczas otwierania strony:
<p id="loading" ><img src="loading-mini.gif" alt="" /> pobieranie...</p>
jest widoczny - ładuje się - widać animację pobieranie danych, a ma być nie widoczny - widoczny ma być dopiero po naciśnięciu buttona i ma zniknąć jak ajax pobierze dane z pliku php
Go to the top of the page
+Quote Post
nospor
post 3.09.2010, 11:00:59
Post #13





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




<p id="loading" style="display:none;">....
i juz. No nie robcie wszystkiego na js.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
cent4
post 3.09.2010, 11:05:56
Post #14





Grupa: Zarejestrowani
Postów: 415
Pomógł: 0
Dołączył: 24.12.2008

Ostrzeżenie: (10%)
X----


A toś mnie teraz zaskoczył...

Myślisz, że nie próbowałem z style="display:none;"...

Nie działa - tzn. element jest ukryty podczas startu ale javascript nie komunikuje się poprawnie z tym elementem - tzn. nie pokazuje go po naciśnięciu przycisku i nie ukrywa go po otrzymaniu odpowiedzi od ajaxa...
Go to the top of the page
+Quote Post
mortus
post 3.09.2010, 11:25:29
Post #15





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


A czy ten przycisk ma atrybut id o wartości submit (id="submit"), bo $('#submit').click(...) przechwytuje zdarzenie kliknięcia na czymś, co ma id o wartości submit.
Go to the top of the page
+Quote Post
cent4
post 3.09.2010, 11:28:48
Post #16





Grupa: Zarejestrowani
Postów: 415
Pomógł: 0
Dołączył: 24.12.2008

Ostrzeżenie: (10%)
X----


to jest mój przycisk submit:

<input type="button" name="submit" value="submit" onClick="ajaxget()" id="submit"/>
Go to the top of the page
+Quote Post
mortus
post 3.09.2010, 11:32:17
Post #17





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Łudząco podobny do tego sprzed kilku postów tyle, że tam nie było id ustawione. Proponuję, abyś pokazał cały kod, bo wydaje mi się, że trochę przedobrzyłeś.
Go to the top of the page
+Quote Post
cent4
post 3.09.2010, 11:42:12
Post #18





Grupa: Zarejestrowani
Postów: 415
Pomógł: 0
Dołączył: 24.12.2008

Ostrzeżenie: (10%)
X----


Oto cały kod;

  1. <head>
  2. <META HTTP-EQUIV="content-type" CONTENT="text/html; CHARSET=iso-8859-2">
  3. <title>PHP using AJAX</title>
  4. <script type="text/javascript" src="google_ga.js"></script>
  5. <script type="text/javascript" src="jquery-1.4.min.js"></script>
  6.  
  7. <script type="text/javascript">
  8. function ajaxRequest(){
  9. var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
  10. if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
  11. for (var i=0; i<activexmodes.length; i++){
  12. try{
  13. return new ActiveXObject(activexmodes[i])
  14. }
  15. catch(e){
  16. //suppress error
  17. }
  18. }
  19. }
  20. else if (window.XMLHttpRequest) // if Mozilla, Safari etc
  21. return new XMLHttpRequest()
  22. else
  23. return false
  24. }
  25.  
  26. function ajaxget(){
  27. var mygetrequest=new ajaxRequest()
  28. mygetrequest.onreadystatechange=function(){
  29. if (mygetrequest.readyState==4){
  30. if (mygetrequest.status==200 || window.location.href.indexOf("http")==-1){
  31. document.getElementById("result").innerHTML=mygetrequest.responseText
  32. }
  33. else{
  34. alert("An error has occured making the request")
  35. }
  36. }
  37. }
  38. var txtnamevalue=encodeURIComponent(document.getElementById("txtname").value)
  39. mygetrequest.open("GET", "basicform.php?txtname="+txtnamevalue, true)
  40. mygetrequest.send(null)
  41.  
  42. }
  43. </script>
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50. <script type="text/javascript">
  51. $('#loading').hide();
  52. $('#submit').click(function(){
  53. $.ajax({
  54. url: 'basicform.php',
  55. success: function(data) {
  56. $('.result').html(data);
  57. $('#loading').hide("slow");
  58. },
  59. beforeSend: function(){
  60. $('#loading').show();
  61. }
  62.  
  63. })
  64. };
  65. </script>
  66.  
  67. <style type="text/css">
  68. #loading {
  69. position: absolute;
  70. width: 150px;
  71. padding: 5px;
  72. background: white;
  73. border: 1px solid gray;
  74. font-family: Courier New, Verdana;
  75. font-size: 40%;
  76.  
  77. }
  78. #loading img {
  79. vertical-align: middle;
  80. }
  81. </style>
  82.  
  83. </head>
  84.  
  85. <body>
  86. <form action="" method="get" id="target">
  87. <tr>
  88. <td>Sprawdź czy domena jest dostępna</td>
  89. <td>
  90. <input type="text" name="txtname" id="txtname" />
  91. </td>
  92. </tr>
  93.  
  94. <tr>
  95. <td colspan="2">
  96. <input type="button" name="submit" value="submit" onClick="ajaxget()" id="submit"/>
  97. </CENTER>
  98. </td>
  99. </tr>
  100. </table>
  101.  
  102.  
  103. </form>
  104.  
  105. <p id="loading" style="display:none;"><img src="loading-mini.gif" alt="" /> pobieranie...</p>
  106.  
  107. <span id="result"></span>
  108.  
  109. </body>
  110. </html>
Go to the top of the page
+Quote Post
mortus
post 3.09.2010, 12:09:35
Post #19





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Jeśli plik jquery-1.4.min.js i plik basicform.php znajdują się w tym samym katalogu, co poniższy plik to wszystko powinno działać prawidłowo.
  1. <head>
  2. <META HTTP-EQUIV="content-type" CONTENT="text/html; CHARSET=iso-8859-2">
  3. <title>PHP using AJAX</title>
  4. <script type="text/javascript" src="google_ga.js"></script>
  5. <script type="text/javascript" src="jquery-1.4.min.js"></script>
  6. <script type="text/javascript">
  7. $('#loading').hide();
  8. $('#submit').click(function(){
  9. $.ajax({
  10. url: 'basicform.php',
  11. success: function(data) {
  12. $('#result').html(data);
  13. $('#loading').hide("slow");
  14. },
  15. beforeSend: function(){
  16. $('#loading').show();
  17. }
  18.  
  19. })
  20. };
  21. </script>
  22.  
  23. <style type="text/css">
  24. #loading {
  25. position: absolute;
  26. width: 150px;
  27. padding: 5px;
  28. background: white;
  29. border: 1px solid gray;
  30. font-family: Courier New, Verdana;
  31. font-size: 40%;
  32.  
  33. }
  34. #loading img {
  35. vertical-align: middle;
  36. }
  37. </style>
  38.  
  39. </head>
  40.  
  41. <body>
  42. <form action="" method="get" id="target">
  43. <tr>
  44. <td>Sprawd czy domena jest dostpna</td>
  45. <td>
  46. <input type="text" name="txtname" id="txtname" />
  47. </td>
  48. </tr>
  49.  
  50. <tr>
  51. <td colspan="2">
  52. <input type="button" name="submit" value="submit" id="submit"/>
  53. </CENTER>
  54. </td>
  55. </tr>
  56. </table>
  57.  
  58.  
  59. </form>
  60.  
  61. <p id="loading" style="display:none;"><img src="loading-mini.gif" alt="" /> pobieranie...</p>
  62.  
  63. <span id="result"></span>
  64.  
  65. </body>
  66. </html>

Jeśli nie działa polecam zainstalować Firebug'a dla Firefox'a i sprawdzać żądania w zakładce Sieć.

Prześledź zmiany. Skoro używamy jquery, to Twoje funkcje nie są potrzebne.
Go to the top of the page
+Quote Post
cent4
post 3.09.2010, 19:25:27
Post #20





Grupa: Zarejestrowani
Postów: 415
Pomógł: 0
Dołączył: 24.12.2008

Ostrzeżenie: (10%)
X----


powyższa treść nie działa - sprawdzam wszystko Firebugiem - tak jak zasugerowałeś

jeszcze jedna uwaga - niewiedzieć czemu jak usunę moje funkcje wogóle mi nic nie działa ajax - klikam w button i nic się niedzieje...
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.05.2025 - 05:19