Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nadpisywanie wartości w pliku xml - wartościami z input, Jak to zrobić w czasie rzeczywistym?
Bart123
post
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 10.05.2014
Skąd: Elbląg

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


Sytuacja jest taka. Mam plik settings.xml, w którym zawarte są ustawienia slidera - typu wysokość, szerokość itp.

Wszystkie te dane wyświetlam na stronie pobierając je z pliku. Wartości, np. Width:600 height:500 wyświetlam w polach input tak jak w formularzu.

I teraz pytanie: Czy istnieje możliwość takiego połączenia pól input z plikiem xml, by w momencie wpisywania nowej wartości np width:1000 zamiast 600, wartość width zmieniała się także w pliku settings.xml?

Bardzo proszę o pomoc.

P.S daleko mi do lenia, dlatego po napisaniu tego pytania, sam staram się znaleźć rozwiązanie. Jeżeli znajdę - powiadomię.

Próbowałem zrobić tak, żeby zmienić najpierw wartość "na siłę", ale nie wypaliło:


foreach($xml->General_Properties ->xpath("$xml->General_Properties->children") as $child ) {
$child->componentWidth->$arr["value"] = '200';
}


A żeby było jeszcze jaśniej: Oto kod, o którym mowa i z którego chciałbym zmieniać wartość value.


<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";


if (!isset($_GET['ajax'])){
echo '<div class="parental">';
echo "<button class='parent' onClick='ajax(\"".$ml."?ajax=1\",\"".$wynik."\")'>General</button>";
echo '<div id="wynik">';
echo '</div>';
echo '</div>';
}
else{
foreach($xml->General_Properties ->children() as $child) { //druk dzieci tylko przy ajaxie
$arr = $child->attributes();
echo $child->getName();
echo "<br><input type='text' name='value' value=" .$arr["value"]."><br>";
}
exit();
}




?>




</html>

Ten post edytował Bart123 19.05.2014, 00:27:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Dlaczego nie dobieram się jak to nazwałeś, skoro jednak te wartości wszystkie wyświetlają się na stronie. W związku z tym jednak mam do nich dostęp. Nie mogę ich tylko nadpisać.

Ja nie mowie nic o dobieraniu sie do wartosci przy wyswietlaniu.... przy wyswietlaniu masz ok.... Ja mowie caly czas o kawalku modyfikacji danych w xml - tu niestety masz już źle. Odczyt nieznanych tagow to jedno, tam children() jest jak najbardziej ok, bo chcesz pobrac wszystkie dzieci, a modyfikacja znanego wezla, to co innego.
Fakt, Ty nie wiesz jakie węzeł w danej chwili modyfikujesz, bo masz źle przygotowany formularz. Masz też źle zrobiony kawalek z zapisem - nie mowi tu o zlym dostepie do danych, ale ogolnie o zapisie - jest to w zlym miejscu.

Musisz zaczac od poprawnie przygotowanego formularza, dopiero wtedy bedziesz mogl isc dalej.
Musisz zaczac tez od podstaw, co sie dzieje jak wysylasz forma, co sie dzieje jak ajax itp. Tutaj lezysz totalnie.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 13.01.2026 - 19:37