Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2008-09-06 01:51:38

  giegiel - Członek DUG

giegiel
Członek DUG
Skąd: Chrzypsko Wielkie/Poznań
Zarejestrowany: 2006-04-15

Ajax ;/ problem

Mam problem z formularzem ajaxowym ;/ Mianowicie plik z formularzem jest pokazywany w stronie (index.php) za pomocą

Kod:

 include('dod_newsa.php')

. I gdy strona z formularzem jest załadowana poprzez index.php (czyli załadowana w div'ie za pomocą include('dod_newsa.php') ;) ) formularz nie działa ;/ natomiast gdy uruchomię sam plik dod_newsa.php w przeglądarce to wszystko chodzi jak ta lala ;)

Pliki ;)

dod_newsa.php

Kod:

<html>
<head>
<script type="text/javascript"> 
var XMLHttpRequestObject = false;

if (window.XMLHttpRequest) 
  { 
   ObiektXMLHttp = new XMLHttpRequest(); 
  } 
  else if (window.ActiveXObject) 
      { 
       ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 


function wysylanie() { 
 var zrodlo = wpis.php;
 var cel = document.getElementById('formularz');

 if(ObiektXMLHttp) 
  {
   
   ObiektXMLHttp.open("POST", zrodlo);

ObiektXMLHttp.onreadystatechange = function() 
{
 if (ObiektXMLHttp.readyState == 1)
   {
    cel.innerHTML = "ładuję"; 
   }
 if (ObiektXMLHttp.readyState == 4)
   {
    cel.innerHTML = "Zrobione"; 
   }
} 

ObiektXMLHttp.send(null);
 } 
 cel.style.visibility = 'hidden';
 return true;
} 

function koniec(result) {
var result = result;
 if(result == 0) {
  document.getElementById('formularz').innerHTML = "News dodany";
 }
 if(result == 1) {
 document.getElementById('formularz').innerHTML = "Nie wszystkie pola były wypełnione!!";
}
}

</script> 
<body>
<br><br>
<div id="formularz">
<form action="wpis.php" name="myform" id="myform" method="POST" enctype="multipart/form-data" target="upload_target">

Autor:  <input type=text name=autor id="pole_tekstowe"> <br><br>
e-mail: <input type=text name=email id="pole_tekstowe"> <br><br>
Tytul:  <input type=text name=tytul id="pole_tekstowe"> <br><br>
Treść:  <TEXTAREA name="news" rows="5" cols="50" id="pole_tekstowe"></TEXTAREA><br><br>
<input type=submit value="Dodaj wpis" id="submit2">
<input type=reset id="submit2"><br>

<iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe>
</form> 
</div>
</html>
</head>
</body>

wpis.php

Kod:

<html>
<?php


include('polacz.php');


mysql_select_db("strona");


$result = 0;
$autor = $_POST['autor'];
$news = $_POST['news'];
$tytul = $_POST['tytul'];
$email = $_POST['email'];

if($autor != null AND $news != null AND $tytul != null AND $email != null) {
 $dodanie = "INSERT INTO news ( autor, data, news, tytul, email) VALUES ('$autor' , NOW() , '$news' , '$tytul', '$email')";
 $wynik = mysql_query($dodanie) or die (mysql_error());
 $result = 0;
}
else {
  $result = 1;
}

?>

<script language="javascript" type="text/javascript">window.top.window.koniec(<?php echo $result; ?>);</script>  </body></html>

index.php

Kod:

<html>
<head>
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>


<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>giegielNET</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="default.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
    <div id="menu">
        <ul>
            <li><a href="index.php" accesskey="1" title="">Główna</a></li>
            <li><a href="/stara_wersja/" accesskey="2" title="">Stara Wersja</a></li>
            <li><a href="#" accesskey="3" title="">Information</a></li>
            <li><a href="#" accesskey="4" title="">About</a></li>
            <li><a href="#" accesskey="5" title="">Contact</a></li>
        </ul>
    </div>
    
</div>
<div id="content">
    <div id="colOne"><br />
        <div class="boxed">
            <h3>Menu</h3><br /> 
            <ul>
                <li class="first"><a href="/stara_wersja/">Stara wersja</a></li>
                <li><a href="index.php?str=samba">Samba</a></li>
                <li><a href="index.php?str=galeria">Galeria</a></li>
                <li><a href="index.php?str=nnews">Nowy news</a></li>
                <li><a href="index.php?str=dodaj_zdj">Dodaj zdjęcie</a></li>
                <li><a href="index.php?str=ajax">Ajax</a></li>
            </ul>
        </div>
        <div class="boxed">
            <h3>Subskrypcja</h3>
            <ul>
                <li class="first"></li>Wpisz adres email:
                <form method="POST" action="">
            <div>
                <input type="text" name="textfield1" id="textfield1" />
                <input type="submit" name="wyslij" id="submit1" value="ok" />
            </div><br />
        </li>
                
            </ul>
        </div>
    </div><br />
    <div id="colTwo"><br />
                                  
            
        <?php 
            $id = $_GET['id'];
            if($id != null) {
             include('galeria/galeria.php');
            }
        else {
            $str = $_GET['str'];
            switch ($str) {
            case "samba":
                  include('samba.php');
                break;
            case "galeria":
                  include('galeria/galeria.php');
                break;
            case null:
                  include('glowna.php');
                break;
            case "nnews":
                  include('dodanie_newsa.php');
                break;
            case "wszystkie":
                  include('wszystkie.php');
                break;
            case "dodaj_zdj":
                  include('galeria/dodanie_zdj.php');
                break;
            case "ajax":
                  include('ajax.php');
                break;
            }
        }
            

         ?><br />

        

    </div><br />
</div><br />
<br /><br>
<br /><p><div id="footer">
    <p>Copyright (c) 2008 <a href="mailto:kuba_ce@wp.pl">giegiel</a></p>
</div></p>
</body>
</html>

HELP bo nie mogę sobie dać rady ;/

Offline

 

#2  2008-09-06 09:16:26

  jezoo - Dzięcioł

jezoo
Dzięcioł
Skąd: Z lasu
Zarejestrowany: 2005-09-02

Re: Ajax ;/ problem

Ja uzywam XML;a jako komunkatora pomiedzy PHP a AJAX;em i niezle to dziala.

ObiektXMLHttp.send(null);

jak masz null to uzywaj get a jak chcesz post to w send musza byc podane parametry, np:

Kod:

var url = "get_data.php";
var params = "lorem=ipsum&name=binny";
http.open("POST", url, true);

//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");

http.onreadystatechange = function() {//Call a function when the state changes.
    if(http.readyState == 4 && http.status == 200) {
        alert(http.responseText);
    }
}
http.send(params);

LRU #480459

Offline

 

#3  2008-09-06 12:06:12

  giegiel - Członek DUG

giegiel
Członek DUG
Skąd: Chrzypsko Wielkie/Poznań
Zarejestrowany: 2006-04-15

Re: Ajax ;/ problem

No dobrze ale to co zrobiłem działa ;) lecz jeśli otwieram plik dod_newsa.php za pomocą

Kod:

http://localhost/dod_newsa.php

A nie działa jeżeli otwieram poprzez stronę index.php czyli za pomocą

Kod:

include('dod_newsa.php');

wstawiam stronę dod_newsa.php w div'a ;)

Zmieniłem na GET i jest to samo ;/

Offline

 

#4  2008-09-06 14:30:58

  jezoo - Dzięcioł

jezoo
Dzięcioł
Skąd: Z lasu
Zarejestrowany: 2005-09-02

Re: Ajax ;/ problem

aha, juz qmam, masz 3 rozwiazania:
1) zrob za pomoca innerHTML i dzialaj na div;ach
2) zrob to w ramce,
3) zawartosc dod_newsa.php zrob jako funkcje i pozniej wyswietlaj.


LRU #480459

Offline

 

#5  2008-09-06 14:51:31

  giegiel - Członek DUG

giegiel
Członek DUG
Skąd: Chrzypsko Wielkie/Poznań
Zarejestrowany: 2006-04-15

Re: Ajax ;/ problem

;) pierwsza opcja może być ciekawa ;) tylko nie wiem o co biega dokładniej proszę bo nie rozumiem ;/ na razie ciemny jestem w tym temacie ;)

Offline

 

#6  2008-09-07 08:45:22

  jezoo - Dzięcioł

jezoo
Dzięcioł
Skąd: Z lasu
Zarejestrowany: 2005-09-02

Re: Ajax ;/ problem

1) zrob funkcje z formularzem np.

Kod:

function registerForm() {
getElementById('form').innerHTML = "i tutaj wstawiasz formulasz i pamietaj o lamaniu \
wierszy"; 
getElementById('form').innerHTML += "to doda zawartosc, a poprzednia funkcja nadpisuje zawartosc";
}

2) przypisz to do body, czyli

Kod:

<body onload="registerForm()">
<div id="form" />
...
</body>

i to wszystko :)

Ostatnio edytowany przez jezoo (2008-09-08 21:23:08)


LRU #480459

Offline

 

#7  2008-09-08 02:08:31

  giegiel - Członek DUG

giegiel
Członek DUG
Skąd: Chrzypsko Wielkie/Poznań
Zarejestrowany: 2006-04-15

Re: Ajax ;/ problem

jejeje działa ;) dzięki wielkie ;)

Offline

 

#8  2008-09-08 21:22:30

  jezoo - Dzięcioł

jezoo
Dzięcioł
Skąd: Z lasu
Zarejestrowany: 2005-09-02

Re: Ajax ;/ problem

prosze :)


LRU #480459

Offline

 

#9  2008-09-16 00:21:47

  giegiel - Członek DUG

giegiel
Członek DUG
Skąd: Chrzypsko Wielkie/Poznań
Zarejestrowany: 2006-04-15

Re: Ajax ;/ problem

Nie będę nowego tematu zakładał ;) bo to bez sensu porządek musi być ;p Problem mam w tym że jak ładuję plik oraz newsa ;) to nie pokazuje się informacja o ładowaniu ;/ gdzie jest szkopuł??

Kod:

<html>
<head>
<script type="text/javascript"> 
var XMLHttpRequestObject = false;

if (window.XMLHttpRequest) 
  { 
   ObiektXMLHttp = new XMLHttpRequest(); 
  } 
  else if (window.ActiveXObject) 
      { 
       ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 

function wysylanie() { 
 var zrodlo = 'galeria/upload.php';
 var cel = document.getElementById('formularz');

 

 if(ObiektXMLHttp) 
  {
   
   ObiektXMLHttp.open("GET", zrodlo);

ObiektXMLHttp.onreadystatechange = function() 
{
 if (ObiektXMLHttp.readyState == 1) 
   {
    cel.innetHTML = "<center>Ładuję plik.. Proszę czekać.<br><br><img src='style/images/loader.gif'></center>";
   }
 if (ObiektXMLHttp.readyState == 4) 
   {
    cel.innetHTML = "Załadowane";
   }
} 

ObiektXMLHttp.send(null);
  
} 
}

function koniec_zdjecia(result) {
var result = result;
 if(result == 0) {
  document.getElementById('formularz').innerHTML = "Zdjęcie zostało dodane.<br><br>";
  form();
 }
 if(result == 1) {
  document.getElementById('formularz').innerHTML = "<b></b>Coś poszło nie tak!!</b><br><br>";
  form();
}

}



function dodanie() { 
 var zrodlo = wpis.php;
 var cel = document.getElementById('formularz');

 if(ObiektXMLHttp) 
  {
   
   ObiektXMLHttp.open("POST", zrodlo);

ObiektXMLHttp.onreadystatechange = function() 
{
 if (ObiektXMLHttp.readyState == 1)
   {
    cel.innerHTML = "Ładuję formularz..."; 
   }
} 

ObiektXMLHttp.send(null);
 } 
} 

function koniec_news(result) {
var result = result;

 if(result == 0) {
  document.getElementById('formularz').innerHTML = "News został dodany.";
  form();
 }
 if(result == 1) {
 document.getElementById('formularz').innerHTML = "<b></b>Nie wszystkie pola zostały wypełnione!!</b><br><br>";
 form();
 
}
}

function pogrubienie() {
document.form_news.news.value += '<b>Tutaj wpisz tekst który chcesz pogrubić</b>';
}
function wysrodkowanie() {
document.form_news.news.value += '<center>Tutaj wpisz tekst który chcesz wyśrodkować</center>';
}
function nowa_linia() {
document.form_news.news.value += '<br>';
}

function form() {

 document.getElementById('formularz').innerHTML += '<center><h2>Dodanie zdjęcia</h2></center><hr><br><form action="galeria/upload.php" method="post" enctype="multipart/form-data" target="upload_target" >Plik: <input name="plik" type="file" size="30" class="fileinputs" id="pole_tekstowe"/><br><br>Opis: <input type=text maxlength="50" name="opis" id="pole_tekstowe"><br><br>Wybierz folder:     <?php echo '<select name="folderl" size="1" id="pole_tekstowe">'; echo '<option value="nowy">Nowy folder</option>'; $connect = mysql_connect("localhost", "user" , "haslo") or die ("Sprawdź połączenie z serwerem"); mysql_select_db("strona"); $sql = "SELECT * FROM foldery"; $result = mysql_query($sql) or die(mysql_error()); if(mysql_num_rows($result) > 0) { while($row = mysql_fetch_array($result)) { $folderlist[$row['id']] = $row['folder']; } foreach($folderlist as $id) { echo '<option value='.$id.'>'.$id.'</option>'; } } echo '</select>';    ?> lub <input type="text" name="folder" Value="Wpisz nazwę folderu" id="pole_tekstowe"/><br><br><input type="submit" name="submitBtn" id="submit2" value="Wyślij" onclick="wysylanie()"/></form><br><hr><center><h2>Dodanie newsa</h2></center><form name="form_news" action="wpis.php" method="POST" enctype="multipart/form-data" target="upload_target">Autor:  <input type="text" name="autor" id="pole_tekstowe"> <br><br>e-mail: <input type="text" name="email" id="pole_tekstowe"> <br><br> Tytul:  <input type="text" name="tytul" id="pole_tekstowe"> <br><br>Treść:  <TEXTAREA name="news" rows="5" cols="50" id="pole_tekstowe"></TEXTAREA><br><br> <input type="submit" value="Dodaj wpis" id="submit2" onclick="dodanie()"> <input type="reset" id="submit2"> <input type = "button" value = "Pogrubienie" id="submit1" onclick = "pogrubienie()"> <input type = "button" value = "Wyśrodkowanie" id="submit1" onclick = "wysrodkowanie()"> <input type = "button" value = "Nowa linia" id="submit1" onclick = "nowa_linia()"> <input type = "button" value = "Pomoc" id="pomoc_guz" onclick = "help()"><br><iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe></form>';
}

function help() {
document.getElementById('help').innerHTML = '<hr><br><ul type="disc"><li>Aby pogrubić tekst należy nacisnąć przycisk <strong>"pogrubienie"</strong> a następnie zamiast tekstu <b>"Tutaj wpisz tekst który chcesz pogrubić"</b> należy wpisać własny, pożądany napis. UWAGA!! nie usuwamy znaczników "<" oraz ">" ani tego co najduje sie między nimi.</li><li>Aby wysrodkować tekst należy nacisnąć przycisk <strong>"wyśrodkowanie"</strong> a następnie zamiast tekstu <b>"Tutaj wpisz tekst który chcesz wyśrodkować"</b> należy wpisać własny, pożądany napis. UWAGA!! nie usuwamy znaczników "<" oraz ">" ani tego co najduje sie między nimi.</li><li>Aby przejść do następnej lini należy kliknąć przycisk <strong>"nowa linia"</strong> a następnie za tym znacznikiem który się wstawił wpisać treść znajdującą się w następnej lini.</li><li>Pisząc newsa pamiętaj aby zachować umiar, ponieważ zbytnie przesadzenie w objętości spowoduje brzydki wygląd strony głównej.</li></ul><input type = "button" value = "Zwiń pomoc" id="pomoc_guz" onclick = "help_zw()">';
}

function help_zw() {
document.getElementById('help').innerHTML = '';
}
</script> 
<body onload="form()">
<div id="formularz">
</div>
<div id="help">
</div>
</body>
</html>
</head>

jezoo (czyt.jezuu) wołam o pomoc ;p Ale jak kto inny pomoże to będzie równie dobrze

Offline

 

#10  2008-09-16 11:54:16

  jezoo - Dzięcioł

jezoo
Dzięcioł
Skąd: Z lasu
Zarejestrowany: 2005-09-02

Re: Ajax ;/ problem

przypuszczam, ze wczytanie jest newsa lub wiadomosci jest szybsze niz Twoje oko :) przy wiekszej ilosci danych bedziesz widzial loadera :)
a checkReadyState ja mam zrobione na cse;ie:

Kod:

function checkReadyState(obj, id) {
        switch(obj.readyState)
        {
                case 0:
                        document.getElementById(id).innerHTML = "Trwa wysyłanie żądania...";
                        break;
                case 1:
                        document.getElementById(id).innerHTML = "Trwa wczytywanie odpowiedzi...";
                        break;
                case 2:
                        document.getElementById(id).innerHTML = "Odpowiedź wczytana...";
                        break;
                case 3:
                        document.getElementById(id).innerHTML = "Odpowiedź gotowa...";
                        break;
                case 4:
                        document.getElementById(id).innerHTML = "";
                        return (obj.status == 200);
                        break;
                default:
                        document.getElementById(id).innerHTML = "Wystąpił nieoczekiwany błąd.";
        }
}

i dziala elegancko :)
btw
jezoo nie jezuu :)


LRU #480459

Offline

 

#11  2008-09-16 12:01:13

  giegiel - Członek DUG

giegiel
Członek DUG
Skąd: Chrzypsko Wielkie/Poznań
Zarejestrowany: 2006-04-15

Re: Ajax ;/ problem

Nio ale przy ładowaniu fotki nie hasa ;/ więc musi być coś nie tak ;/

Offline

 

#12  2008-09-16 12:06:02

  jezoo - Dzięcioł

jezoo
Dzięcioł
Skąd: Z lasu
Zarejestrowany: 2005-09-02

Re: Ajax ;/ problem

nie,nie on pisze ladowanie do mometu kiedy nie dostanie 'czegos' do wyswietlenia, gdy dostanie to przechodzi do stanu '3' a pozniej '4'


LRU #480459

Offline

 

#13  2008-09-16 16:53:04

  giegiel - Członek DUG

giegiel
Członek DUG
Skąd: Chrzypsko Wielkie/Poznań
Zarejestrowany: 2006-04-15

Re: Ajax ;/ problem

No właśnie a u mnie nie pisze ładowanie... I nie mogę dojść do tego co jest nie tak bo wg. mnie nic nie wysyłam podczas ładowania. Chyba że

Kod:

<body onload="form()">

to ma jakiś związek z tym ale wątpię żeby miało na to wpływ

Offline

 

#14  2008-09-16 18:02:17

  jezoo - Dzięcioł

jezoo
Dzięcioł
Skąd: Z lasu
Zarejestrowany: 2005-09-02

Re: Ajax ;/ problem

no to nie ma zadnego zwiazku z informacja jaki jest status


LRU #480459

Offline

 

#15  2008-11-19 11:35:54

  jezoo - Dzięcioł

jezoo
Dzięcioł
Skąd: Z lasu
Zarejestrowany: 2005-09-02

Re: Ajax ;/ problem

Giegiel, jak Ciebie dalej trapi to, ze nie masz statusu wyswietlanego to mam rozwiazanie, ale opiera sie o XML;a.
jak bedziesz chial to Ci napisze :)


LRU #480459

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)