Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
Drodzy forumowicze.
Mam problem, który wygląda tak. <?php $xml=simplexml_load_file($_SERVER['DOCUMENT_ROOT'] . '/1/wp-content/flashxml/3d-carousel-menu-as3-fx/settings.xml'); $arr = $child->attributes(); echo '<div class="parental">'; foreach($xml->General_Properties as $parent) { echo '<form action='' method='POST'>'; echo '<input class="parent" type="button" name="click1" onClcick="foreach($parent->children() as $child) { '.$arr["value"].'; } />'; echo "</form>"; } echo '</div>'; ?> Najprawdopodobneiej problem jest z zapisem onclick ponieważ tam występuje echo w echo. Czy mógłby mi ktoś wytłumaczyć, w jaki sposób to zapisać by działało? Z góry dziękuję za każdą pomoc. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Jaki efekt/kod chcesz uzyskać?
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
Sytuacja jest taka: mam plik xml, którego konstrukcja wygląda tak
Rodzic dziecko = wartość dziecko = wartość dziecko= wartość Rodzić dziecko = wartość dziecko = wartość dziecko= wartość np. General_properties height=200 width=100 I udało mi się odczytać zawartość pliku i wyświetllić na stronie. Problem pojawił się wtedy, kiedy chciałem wyświetlić RODZICA (to się udało) jako przycisk formularza. I po kliknięciu przycisku rozwijają się jego "dzieci". Tak to umownie nazwijmy. Taki właśnie efekt chcę uzyskać. Jeżeli to w ogóle możliwe. Oczywiście bardzo łatwo jest to zrobić przy pomocy submita ale, wtedy po naciśnięciu przycisku cała strona się przeładowuje i tu jest niestety wał. Nie chciałbym używać ajaxu czy javascripta bo się specjalnie na nich nie znam... stąd pomysł na onClick. OTO JAK WYGLĄDAŁ DZIAŁAJĄCY KOD Z SUBMIT czyli z przeładowywaniem strony NIESTETY. <?php $xml=simplexml_load_file($_SERVER['DOCUMENT_ROOT'] . '/1/wp-content/flashxml/3d-carousel-menu-as3-fx/settings.xml'); echo '<div class="parental">'; foreach($xml->General_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='submit' name='click1' value='General'/>"; echo "</form>"; if (isset($_POST['click1'])) { foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(''); echo ("<br>".$arr["value"]). "<br><br>";} }} echo '</div>'; echo '<div class="parental">'; foreach($xml->Colorbox_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='submit' name='click2' value='Colorbox'/>"; echo "</form>"; if (isset($_POST['click2'])) { foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(''); echo ("<br>".$arr["value"]). "<br><br>";} }} echo '</div>'; echo '<div class="parental">'; foreach($xml->Thumbs_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='submit' name='click3' value='Thumbs'/>"; echo "</form>"; if (isset($_POST['click3'])) { foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(''); echo ("<br>".$arr["value"]). "<br><br>";} }} echo '</div>'; echo '<div class="parental">'; foreach($xml->Reflection_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='submit' name='click4' value='Reflection'/>"; echo "</form>"; if (isset($_POST['click4'])) { foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(''); echo ("<br>".$arr["value"]). "<br><br>";} }} echo '</div>'; echo '<div class="parental">'; foreach($xml->Roll_Over_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='submit' name='click5' value='Roll_Over'/>"; echo "</form>"; if (isset($_POST['click5'])) { foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(''); echo ("<br>".$arr["value"]). "<br><br>";} }} echo '</div>'; echo '<div class="parental">'; foreach($xml->Tooltip_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='submit' name='click6' value='Tooltip'/>"; echo "</form>"; if (isset($_POST['click6'])) { foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(''); echo ("<br>".$arr["value"]). "<br><br>";} }} echo '</div>'; echo '<div class="parental">'; foreach($xml->Background_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='submit' name='click7' value='Background'/>"; echo "</form>"; if (isset($_POST['click7'])) { foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(''); echo ("<br>".$arr["value"]). "<br><br>";} }} echo '</div>'; echo '<div class="parental">'; foreach($xml->Shade_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='submit' name='click8' value='Shade'/>"; echo "</form>"; if (isset($_POST['click8'])) { foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(); echo ("<br>".$arr["value"]). "<br><br>";} }} echo '</div>'; echo '<div class="parental">'; foreach($xml->Rotation_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='submit' name='click9' value='Rotation'/>"; echo "</form>"; if (isset($_POST['click9'])) { foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(); echo ("<br>".$arr["value"]). "<br><br>";} }} echo '</div>'; ?> Ten post edytował Bart123 12.05.2014, 21:07:32 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 479 Pomógł: 97 Dołączył: 6.09.2011 Skąd: php.net :) Ostrzeżenie: (0%)
|
Używaj BBCODE bo nie da się tego czytać.
Załaduj
do ukrytego div'a i dodaj sobie w input akcję onclick i funkcję w JS, która pokaże/ukryje ten div. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
Sorki:) To było wklejane z notatniika. Ja po prostu już znam te swoje kody na pamięć.
Następnym razem użyję jedit. A mógłbym prosić o zapis tej funkcji w javie? Z javy jestem cienasem. Przyznaję się bez bicia. Ten post edytował Bart123 13.05.2014, 11:54:28 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 578 Pomógł: 69 Dołączył: 15.04.2007 Skąd: Wrocław Ostrzeżenie: (0%)
|
A po co ci w javie?
Chciałeś online. Nie chcesz przypadkiem w javascript? Zamiast przepisywać to na inny język skorzystaj po prostu z ajax. Ten post edytował timon27 13.05.2014, 17:09:04 |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
Dobrze by było wiedzieć jak to zapisać w ajax - może jakiś przykład?
Pewnie dla Was to łatwiejsze niż dla mnie. Dopiero się wdrażam w ajax... Ten post edytował Bart123 13.05.2014, 17:50:40 |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 578 Pomógł: 69 Dołączył: 15.04.2007 Skąd: Wrocław Ostrzeżenie: (0%)
|
funkcja ajax:
Co robi: "wchodzi" na adres url a następnie całość co zobaczy wczytuje do diva/spana o id destination czyli w twoim wypadku zamiast:
piszesz:
a guzik ten wykona skrypt pokaz_dziecko.php i wyświetli zawartość w divie o id wynik Reszta (podzielenie twojego skryptu na części) to już php Ten post edytował timon27 13.05.2014, 19:21:15 |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
Chyba sobie nie radzę.
Zrobiłem tak. To jest cała zawartość pliku xml.php <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" type="text/javascript"></script> function ajax(xml.php,wynik){ document.getElementById(wynik)'; var xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById(wynik); } } xmlhttp.open("GET",xml.php,true); xmlhttp.send(); </head> <?php $xml=simplexml_load_file($_SERVER['DOCUMENT_ROOT'] . '/1/wp-content/flashxml/3d-carousel-menu-as3-fx/settings.xml'); echo '<div class="parental">'; foreach($xml->General_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='button' onClick='ajax("xml.php.","wynik")' value='General'/>"; echo "</form>"; echo '<div id="wynik">'; foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(); echo ("<br>".$arr["value"]). "<br><br>"; }echo '</div>';} echo '</div>'; ?> </html> Co tu jest nie tak? Ten post edytował Bart123 15.05.2014, 19:27:25 |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
W jQuery masz gotową funkcję do obsługi żądań ajax. Jeśli natomiast chcesz pozostawić swoją funkcję, a nie korzystasz gdzie indziej z jQuery, to niepotrzebnie ją załączasz. |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
Słuchaj. Jeżeli mógłbym Cię prosić.
Mógłbyś zmienić tą funkcję którą wkleiłem - ten zaips na taki jak powinien być ? Bo chyba nie bardzo zrozumiałem twoją radę... Ten post edytował Bart123 15.05.2014, 19:47:40 |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Popraw trzy powyższe błędy, do rady nie trzeba się stosować, aby skrypt działał.
|
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
Ale przecież mój zapis tak właśnie wygląda?
Rozumiem że za file mam wstawić xml.php a za wynik id diva, który na potrzeby tej jawy nazwałem wynik. Czy nie tak? |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Nie wygląda tak.
Zmień linijki w kodzie, na te które Ci podałem. |
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
<html>
<head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" type="text/javascript"></script> function ajax(xml.php,wynik){ document.getElementById(wynik)'; var xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById(wynik); } } xmlhttp.open("GET",child.php,true); xmlhttp.send(); </head> <?php $xml=simplexml_load_file($_SERVER['DOCUMENT_ROOT'] . '/1/wp-content/flashxml/3d-carousel-menu-as3-fx/settings.xml'); $xml = xml.php; $wynik = wynik; echo '<div class="parental">'; foreach($xml->General_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='button' onclick='ajax(".$xml.",".$wynik.")' value='General'/>"; echo "</form>"; echo '<div id="wynik">'; foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(); echo ("<br>".$arr["value"]). "<br><br>"; }echo '</div>';} echo '</div>'; ?> </html> Tak wygląda to co mam w tej chwili i nie wiem czy błąd nie tkwi w tym, że button wyswietlany jest w echu razem z funkcją ajax . Jak wchodzę na stronę, zamiast przycisku widzę zapis funkcji ajax... |
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
<html>
<head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" type="text/javascript"></script> function ajax(file,wynik){ document.getElementById(wynik)'; var xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById(wynik); } } xmlhttp.open("GET",file,true); xmlhttp.send(); </head> <?php $xml=simplexml_load_file($_SERVER['DOCUMENT_ROOT'] . '/1/wp-content/flashxml/3d-carousel-menu-as3-fx/settings.xml'); $xml = xml.php; $wynik = wynik; echo '<div class="parental">'; foreach($xml->General_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='button' onclick='ajax(".$xml.",".$wynik.")' value='General'/>"; echo "</form>"; echo '<div id="wynik">'; foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(); echo ("<br>".$arr["value"]). "<br><br>"; }echo '</div>';} echo '</div>'; ?> |
|
|
|
Post
#18
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#19
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
Trzecia czyli to?
$xml = "xml.php"; $wynik = "wynik"; Mam tak zapisane. Zapis w onclick juz zmieniłem. Cudzysłowia! Ok mam. Zobaczymy czy zadziała. Żeby było jaśniej to wklejam to co wyświetla mi się na stronie function ajax(file,wynik){ document.getElementById(wynik)'; var xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById(wynik); } } xmlhttp.open("GET",file,true); xmlhttp.send(); To zamiast przycisku - czyli prawdopodobnie zapis w echo przeszkadza, a już zmieniłem na taki jaki podałeś, czyli błąd nr. 4 Ten post edytował Bart123 15.05.2014, 20:05:01 |
|
|
|
Post
#20
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Funkcję ajax trzeba objąć w tagi <script>.
|
|
|
|
Post
#21
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
Teraz nie ma nic. Ani przysku ani nic. Pusto, Mam tak:
<html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" type="text/javascript"></script> <script> function ajax(file,wynik){ document.getElementById(wynik)'; var xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById(wynik); } } xmlhttp.open("GET",file,true); xmlhttp.send(); </script> </head> <?php $xml=simplexml_load_file($_SERVER['DOCUMENT_ROOT'] . '/1/wp-content/flashxml/3d-carousel-menu-as3-fx/settings.xml'); $xml = "xml.php"; $wynik = "wynik"; echo '<div class="parental">'; foreach($xml->General_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='button' onclick='ajax(\"".$xml."\",\"".$wynik."\")' value='General'/>"; echo "</form>"; echo '<div id="wynik">'; foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(); echo ("<br>".$arr["value"]). "<br><br>"; }echo '</div>';} echo '</div>'; ?> </html> Ten post edytował Bart123 15.05.2014, 20:20:43 |
|
|
|
Post
#22
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#23
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
<script>
function ajax(file,wynik){ document.getElementById(wynik).innerHTML=xmlhttp.responseText; var xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById(wynik); } } xmlhttp.open("GET",file,true); xmlhttp.send(); </script> Nadal pusto? Mam nadzieję, że nie tylko mnie szlag trafia jak coś nie wychodzi?(IMG:style_emoticons/default/smile.gif) Ten post edytował Bart123 15.05.2014, 20:31:11 |
|
|
|
Post
#24
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Pewnie, że pusto, bo należało zmienić linijkę w funkcji onreadystatechange.
Jeszcze musisz wziąć pod uwagę, że wywołując kod php ajaxem zwracasz go w takiej postaci jak przy inicjacji całości (czyli z formularzem). |
|
|
|
Post
#25
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
Jeżeli chodzi onreadystatechange to zdaje się zmienłem na prawidłowe. I dalej bez efektu (IMG:style_emoticons/default/sad.gif)
<script> function ajax(file,wynik){ document.getElementById(wynik).innerHTML=xmlhttp.responseText; var xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById(wynik).innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET",file,true); xmlhttp.send(); </script> Zdaje się, że się nie zrozumieliśmy. Bardzo dobrze, że z formularzem czyli w tym przypadku z przyciskiem, który ma wywoływać ajaxa. Tylko, że tego przycisku od momentu wprowadzenia ajaxa właśnie NIE MA. Ten post edytował Bart123 15.05.2014, 20:50:03 |
|
|
|
Post
#26
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Skoro tam zmieniłeś, to wyrzuć tą linijkę na początku funkcji.
Uruchom narzędzie developerskie, w Chrome F12. Potem zakładka Console i zobacz czy są błędy przy uruchamianiu przyciskiem. Jeśli nie, to zakładka Network i zobacz czy żądanie idzie, i jaki jest jego wynik. |
|
|
|
Post
#27
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
Znalazłem błąd! Przycisk jest, ale nie wysyła żadnego żądania.
OTO ZWROT Z CONSOLI CHROMA: Uncaught ReferenceError: ajax is not defined picturesadd.php:256 onclick A OTO PLIK: <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" type="text/javascript"></script> <script> function ajax(file,wynik){ var xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById(wynik).innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET",file,true); xmlhttp.send(); </script> </head> <?php $xml=simplexml_load_file($_SERVER['DOCUMENT_ROOT'] . '/1/wp-content/flashxml/3d-carousel-menu-as3-fx/settings.xml'); $ml = "xml.php"; $wynik = "wynik"; echo '<div class="parental">'; foreach($xml->General_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='button' onClick='ajax(\"".$ml."\",\"".$wynik."\")' name='click1' value='General'/>"; echo '<div id="wynik">'; foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(); echo ("<br>".$arr["value"]). "<br><br>"; }echo '</div>';} echo "</form>"; echo '</div>'; ?> </html> Pliik jest plikiem o nazwie xml.php includowanym w php do pliku picturesadd.php. Może tu jest błąd? HELP! Firefox również zwraca: AJAX IS NOT DEFINED! Jak not defined skoro w obu plikach już umieściłem zapis z headera. Co za absurd. Ja już się poddałem. Jeżeli nikt nie pomoże mi tego rozwiązać to efektu, jaki chciałem uzyskać - nie będzie. Trudno (IMG:style_emoticons/default/sad.gif) Ten post edytował Bart123 15.05.2014, 21:21:21 |
|
|
|
Post
#28
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Nie zamknąłeś deklaracji funkcji ajax, brakuje }.
|
|
|
|
Post
#29
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
Jasna cholera.
Już wiem o czym pisałeś wcześniej. Pokazuje się, tylko że pokazuje się jeszcze raz ten sam przycisk i dopero rezultat. A jak to zrobić, by po wciśnięciu przycisku GENERAL - POJAWIŁA SIĘ WYŁĄCZNIE ZAWARTOŚĆ diva o nazwe wskazanej w ajax. Już bez tego przycisku. Co więcej - to działa tylko wtedy, kiedy wskazany w ajaksie div nie ma ustawionego display:none w zewnętrznym css. A chodzi o to, żeby po wejściu na strone nie było go widać. Żeby on pokazywał się tylko wtedy, kiedy kliknę w przycisk formularza. Pytanie zasadnicze : JAK PRZY POMOCY AJAXU BĄDŹ samego JAVASCRIPT ZMIENIĆ WARTOŚĆ DISPLAY dla Diva o nazwie wynik - W ZEWNĘTRZNYM PLIKU CSS. Po wejściu na stronę div o nazwie WYNIK jest niewidoczny. Kiedy klikam na przycisk GENERAL - div o nazwie WYNIK się pokazuje. Ot cała filozofia. Tylko jak to zrobić? Jeszcze raz cały kod tak dla przypomnienia jakby co:: <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" type="text/javascript"></script> <script> function ajax(file,wynik){ var xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById(wynik).innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET",file,true); xmlhttp.send(); } </script> </head> <?php $xml=simplexml_load_file($_SERVER['DOCUMENT_ROOT'] . '/1/wp-content/flashxml/3d-carousel-menu-as3-fx/settings.xml'); $ml = "xml.php"; $wynik = "wynik"; echo '<div class="parental">'; foreach($xml->General_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='button' onClick='ajax(\"".$ml."\",\"".$wynik."\")' name='click1' value='General'/>"; } echo '<div id="wynik">'; foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(); echo ("<br>".$arr["value"]). "<br><br>"; }echo '</div>'; echo "</form>"; echo '</div>'; ?> </html> zamknięcie formularza dałem wyżej. Pisałeś, że tak to będzie wyglądało... Ten post edytował Bart123 15.05.2014, 22:56:50 |
|
|
|
Post
#30
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Jeśli wywołujesz kod bez ajaxa (czyli z palca), ma się wyświetlać tylko formularz + pusty div "wynik".
Jeśli wywołujesz kod ajaxem, ma się wyświetlić tylko to, co generuje drugi foreach. Trzeba wykorzystać if-else. |
|
|
|
Post
#31
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
if (!isset($_POST['button']))
{ echo '<div class="parental">'; foreach($xml->General_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='button' onClick='ajax(\"".$ml."\",\"".$wynik."\")' name='button' value='General'/>"; echo "</form></div>"; }} else { echo '<div id="wynik">'; foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(); echo ("<br>".$arr["value"]). "<br><br>"; } echo '</div></div>';} Taki zapis nie daje kompletnie nic. button nie działa. echo '<div class="parental">'; foreach($xml->General_Properties as $parent) { echo "<form action='' method='POST'>"; echo "<input class='parent' type='button' onClick='ajax(\"".$ml."\",\"".$wynik."\")' name='button' value='General'/>"; echo "</form></div>";} if (isset($_POST['button'])) { echo '<div id="wynik">'; foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(); echo ("<br>".$arr["value"]). "<br><br>"; } echo '</div>';} Taki również nic. Jakbym nie kombinował , kliknięcie wyświetla albo drugiego buttona albo nic. Zero diva "wynik". Ten pojawia się tylko wtedy, kiedy nie ma ifów i bez kliknięcia. Po prostu po wejściu na stronę. Przyznam, że pierwszy raz mam takie problemy, ale też pierwszy raz robię zdalną obsługę slidera. Dodawanie zdjęć już jest, teraz chodz o to, co jest w wyniku czyli ustawienia tego slidera. Tak, żeby można je było zmieniać z poziomu strony - oczywiście każdy z atrybutów wsadzę wtedy w odpowiedni input. Ten post edytował Bart123 16.05.2014, 13:41:23 |
|
|
|
Post
#32
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
To, że formularz ma metodę POST nie znaczy, że ajax również z niej korzysta.
Jak pewnie zauważyłeś ajax korzysta w tym przypadku z metody GET, więc o taki warunek powinieneś oprzeć kod. Warunki nadal są w złych miejscach. P.S. Formularz obecnie nie jest do niczego potrzebny, przycisk można zastąpić tagiem <a> z odpowiednim atrybutem href. |
|
|
|
Post
#33
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
Ty masz anielską cierpliwość chłopie (IMG:style_emoticons/default/wink.gif)
Ja bym przy sobe wymiękł heheh (IMG:style_emoticons/default/wink.gif) Dzięki (IMG:style_emoticons/default/wink.gif) Jakbyś tak mógł jeszcze podpowedzieć gdzie postawić if (isset ($_GET['button'])) to bym w końcu miał z tym spokój (IMG:style_emoticons/default/sad.gif) Please... Zrobłem tak, ale oczywiście nadal jest źle bo nie działa. Czuję się jak dziecko w podstawówce. Jezu... <?php $xml=simplexml_load_file($_SERVER['DOCUMENT_ROOT'] . '/1/wp-content/flashxml/3d-carousel-menu-as3-fx/settings.xml'); $ml = "xml.php"; $wynik = "wynik"; echo '<div class="parental">'; if (!isset($_GET['button'])) { foreach($xml->General_Properties as $parent) { echo "<form action='' method='GET'>"; echo "<input class='parent' type='button' onClick='ajax(\"".$ml."\",\"".$wynik."\")' name='click1' value='General'/>"; echo "</form>"; }} else { echo '<div id="wynik">'; foreach($parent->children() as $child) { $arr = $child->attributes(); echo $child->getName(); echo ("<br>".$arr["value"]). "<br><br>"; }echo '</div>'; } echo '</div>'; ?> Pewnie chodzi o wstawienie warunków do samej funkcji ajax ? Tylko jak to zapisać? Ten post edytował Bart123 16.05.2014, 14:03:24 |
|
|
|
Post
#34
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Ile $parent jest w General_Properties?
|
|
|
|
Post
#35
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
General_Properties występuje jako parent -
Pytasz ile jest childs w tym rodzicu? Chodzi ci pewnie o to, że tam niepotrzebnie jest foreach? Rodziców będzie 8. Każdy ma inną nazwę. Ale jak zrobię general_properties, żeby wyświetlały się jego podpunkty, to w ten sam sposób zrobię resztę. Każdy rodzic będzie miał inną liczbę podpunktów. Bez ifa pobiera je wszystkie - tyle że ja je chcę uzyskać dopero po kliknięciu w parent. Pewnie to ciężko zrozumieć nie widząc efektu.... Nie potrafię jakoś jaśniej wyklarować. Ten post edytował Bart123 16.05.2014, 14:21:09 |
|
|
|
Post
#36
|
|
|
Grupa: Zarejestrowani Postów: 6 809 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%)
|
Nie znam struktury tego XML, więc trochę się gubię.
Tak, chodziło mi o to, że niepotrzebny jest pierwszy foreach.
I bez pierwszego foreach:
|
|
|
|
Post
#37
|
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 0 Dołączył: 10.05.2014 Skąd: Elbląg Ostrzeżenie: (10%)
|
Działa:) Dzięki wielkie.
Ten post edytował Bart123 16.05.2014, 16:48:27 |
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 10:31 |