![]() |
![]() |
![]()
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 806 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 806 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 806 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 806 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 806 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 806 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 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Funkcję ajax trzeba objąć w tagi <script>.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 18:03 |