Suche auf lima-city
-
in: json_decode vs simplexml_load_string
geschrieben von zitatbox
das wäre schön,
aber ich habe verschiedene Datenquellen die mal XML sind und mal JSON
und die Ergebnisse will ich gerne einheitlich haben.
habs ja schon fast, komme immerhin auch an die Attribute aus SimpleXML-Objekt dran,
aber eben nur für "bekannte" Elemente, jetzt fehlt mir noch ein rekrusiver Durchlauf
um für alle Elemente und deren "Children" eventuelle Attribute direkt als Objekt zu bekommen,
also über alle Ebenen, denn manche Daten sind auch derb verschactelt,
das oben ist nur ein einfaches Beispiel
also ich brauche wohl eine Funktion mit Rekursion
irgendwie mit
aber ich bekommst nicht hinif($xml_result->hasChildren()) { ... }
(oder gibts ne besseere Lösung als Rekursion um alle Ebenen durch zu gehen ?)
-
in: Direkte Verarbeitung des Formulars
geschrieben von zitatbox
Du muss dem <select> eine ID geben
12345<
select
name
=
"spieltag"
id
=
"spieltag"
>
<
option
value
=
"1"
>Tag 1</
option
>
<
option
value
=
"2"
>Tag 2</
option
>
<
option
value
=
"3"
>Tag 3</
option
>
</
select
>
braucht Du, damit bei "normalem" Formular sendenname="spieltag"
in der send.php auch %_POST['spieltag'] ankommen würde
aber da Du ja mit jQuery sendest braucht man das hier eigentlich nicht
braucht Du, damit Du per jQuery auf die ID (Selector) Zugreifen kannstid="spieltag"
und dessen Werte (Value oder Text) auslesen kannst ... um diese im Ajax Post Aufruf zu übergeben.
Wie Du schon richtig erkannt hast, den Wert der aktuell gewählten Option bekommst Du mit:
$('#spieltag').val();
also wenn die 2te Option ausgewählt wird, dann bekommst du die Zahl2
Möchtest Du den Text, also Inhalt der aktuell gewählten Option erhalten,
dann geht dies über den zusätzlichen Selektor “:selected” und die Funktion “text”:
$('#spieltag:selected').text();
also wenn die 2te Option ausgewählt wird, dann bekommst du den TextTag 2
PS: ich kann das auch nicht alles auswendig, ich nutze einfach Google
in diesem Fall .... https://www.google.de/search?q=jquery+select+option+value
Man muss nur wissen, was man suchen soll, also die "richtigen" suchbegriffe nehmen :)
:) -
in: Direkte Verarbeitung des Formulars
geschrieben von zitatbox
hmm, keine Ahnung ...
... oha ... du nutzt ja Version: jquery-1.5.min
... nimm mal eine aktuellere jQuery Version ... http://code.jquery.com/jquery-1.9.1.min.js
siehe: http://jquery.com/download/
PS: jQuery 2.0 does not support Internet Explorer 6, 7, or 8 ... also besser die 1.9.1 Version nehmen.
aber sollte eigentlich auch mit Version 1.5 funktionieren ?!!? ... hmmm
hast Du es schonmal mit einem anderen Browser versucht ?
sonst musst Du Dich bei jQuery oder dem Hersteller Deines Browsers beschweren
-
in: Direkte Verarbeitung des Formulars
geschrieben von zitatbox
nimm als Daten nicht data sonder Dein msg ... Dein Variable-Name !!!
nicht so
$("#myFormDiv").empty().fadeIn(2000).html(data);
sondern so
$("#myFormDiv").empty().fadeIn(2000).html(msg);
:xD ... :P .. sorry ...:=) .
-
in: json_decode vs simplexml_load_string
geschrieben von zitatbox
hmm, aber auf die XML Datei habe ich keinen Einfluss, da muss ich nehmen was kommt ...
ich hab mir jetzt eine Funktion gebastelt
1234567891011121314function
attributes_to_object(
$object
) {
$attributes
=
$object
->attributes();
$new_object
=
new
stdClass;
if
(!
empty
(
$attributes
)) {
foreach
(
$attributes
as
$attr_key
=>
$attr_val
) {
$new_object
->
$attr_key
= (string)
$attr_val
;
}
$new_object
->content = (string)
$object
;
}
else
{
$new_object
= (string)
$object
;
}
return
$new_object
;
}
Aber dazu muss ich das Element kennen, in dem die Attribute sind, hier$xml_result->a
1234$test_data
=
array
();
foreach
(
$xml_result
->a
as
$aitem
) {
$test_data
[] = attributes_to_object(
$aitem
);
}
ich bräuchte was, mit dem ich egal für welches Ergebnis aus simplexml
die Attribute in Standard-Objekte umwandeln kann, am besten rekrusiv, also über alle Ebenen
-
in: Direkte Verarbeitung des Formulars
geschrieben von zitatbox
versuch mal das .fadeIn() nach vorne zu setzen
$("#myFormDiv").empty().fadeIn(2000).html(data);
... vielleicht ist es ja nur, weil zuerst html() ausgeführt wird und erst danach .fadein()
also mal andersrum probieren ... :) -
in: Direkte Verarbeitung des Formulars
geschrieben von zitatbox
das load() hat dann nichts mehr mit den gesendeten Daten zu tun,
entweder Du speicherst die Variablen beim senden in Session und gibst diese dann aus
oder gibst direkt das Ergebnis beim Senden aus, ohne nochmal .load()
versuch mal so
success: function(msg) { /* form-div verstecken, seite nachladen & wieder einblenden (2000 ms) */ $("#myFormDiv").empty().html(msg).fadeIn(2000); }
und anstatt dem
Konstrukt$.ajax({ type: "POST", ... ...
kannst Du auch direkt jQuery POST nehemen
$.post("script/send.php", { "name" : $("#name").val() , "email" : $("#email").val() }) .done(function(data) { $("#myFormDiv").empty().html(data).fadeIn(2000); });
das ist die "Kurzform" für$.ajax({ type: "POST", ... ...
ist die Datei send.php auch im Ordner script/ ??
-
in: infos von einer webseite fetchen
geschrieben von zitatbox
oder mit YQL, dazu muss Dur "Nur" den xpath kennen, also HTML-TAGs und ID oder Klasse
die YQL Abfrage sieht dann so aus
select * from html where url="http://www.gameladen.com/goods-506-FarCry3PC.html" and xpath='//ul[@class="priceInfo_rg"]/li[@class="price"]'
Beispeil in der YQL Console ----> Ergebnis als XML YQL Ergebnis
Zugriff auf die XML Daten mit PHP über simplexml_load_file
(Alternativ ist das Ergebnis auch als JSON Format möglich, siehe YQL Console)
-
in: json_decode vs simplexml_load_string
geschrieben von zitatbox
Hallo
Wenn ich die gleichen Daten als XML oder als JSON habe,
bekomme ich bei Auslesen jeweils unterschiedliche Ergebnisse
Beispiel-Daten (PHP)
123$daten
[2] =
'Ein Text ohne Link'
;
wenn die Daten als JSON vorliegen und ich Auslese mit json_decode()
... Ausgabe mit print_r($json_result)
stdClass Object ( [a] => Array ( [0] => stdClass Object ( [href] => http://www.google.de [title] => Google [content] => Suche bei Google ) [1] => stdClass Object ( [href] => http://www.bing.de [title] => Bing [content] => Suche bei Bing ) [2] => Ein Text ohne Link }
wenn die Daten als XML vorliegen und ich Auslese mit simplexml_load_string()
... Ausgabe mit print_r($xml_result)
SimpleXMLElement Object ( [a] => Array ( [0] => Suche bei Google [1] => Suche bei Bing [2] => Ein Text ohne Link } }
also hier ist mit print_r() die Ausgabe ohne Attribute
es ist kein Unterschied zu erkennen, ob weitere Attribute vorhanden sind,
beides ... "Link-Text " und "nur Text" sehen "gleich" aus = nur String
erst wenn ich Ausgabe direkt für ein [a] Objekt mache
dann sehe ich die Attribute, aber ohne 'content' wie bei JSON
print_r($xml_result->a[0])
SimpleXMLElement Object ( [@attributes] => Array ( [href] => http://www.google.de [title] => Google ) )
jetzt habe ich zwar die Attrubute, aber der "Link-Text" aka 'content' fehlt ...
FRAGE .... wie baue ich das XML Ergebnis um, damit die Werte nicht in [@attributes] sind
sondern (so wie bei json_decode) direkt als Objekt vorliegen ?
... gerne auch inklusive dem "Link-Text" aka 'content' also dem "nicht-Attribut" ...