Seite 4 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 46 bis 60 von 61
  1. #46
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: JS in PHP einbinden

    Dann stimmt irgednetwas mit dem header nicht.

    Ich hab's grad mal probiert, der IE 10 hat keine Probleme mit "Content-type: application/xml" - ich kenne nicht die Debugmöglichkeiten vom IE, aber Firefox zeigt dir im Kontextmenü an "seiteninformationen anzeigen" da steht welcher mit welchem Typ die Seite ausgeliefert wurde.

  2. #47
    Daktari ist offline Eroberer
    registriert
    17-06-2011
    Beiträge
    70

    AW: JS in PHP einbinden

    Bei meinem Kollegen kommt im IE9 auf Win7 als Typ: Firefox HTML
    Code:
    999911E24.02.11-4Innerhalb von 30 Tagen Netto.10664823013667310664-1-Germany GmbHTire Plant, Landstr. 56345076661GermanyGERMANY-DeuUPSVerzichtskundeDE813383493Verk-0.02000.0000
    Bei mir im Firefox steht als Typ: application/xhtml+xml

    Ich selbst habe auf meinem PC/XP-Prof. nur den IE8 installiert, mit dem er das File nach wie vor nur herunterladen will.

  3. #48
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: JS in PHP einbinden

    Du hast den code aus Post #39 entfernt? Es wird also kein anderer HTTP Header mehr für den IE gesendet?

    probier mal den folgenden header:
    PHP-Code:
    header('Content-Type: text/xml; charset=utf-8'); 

  4. #49
    Daktari ist offline Eroberer
    registriert
    17-06-2011
    Beiträge
    70

    AW: JS in PHP einbinden

    alsoo.. ich hatte den IF-Code entfernt.
    Der Header war zuletzt dieser hier:
    Code:
    header("Content-type: application/xhtml+xml");
    Damit ging es nicht.

    Mit dem Header von Dir:
    Code:
    header('Content-Type: text/xml; charset=utf-8');
    ging es!

    Das kam mir komisch vor... Da hab ich es noch mal versucht mit:
    Code:
    header('Content-type: application/xhtml+xml');
    und damit ging es dann auch!

    Warum ist es hier wichtig zwischen ' und " zu unterschieden?

    Somit habe ich zumindest auch im IE die Anzeige:
    Code:
      <?xml version="1.0" encoding="utf-8" ?> 
    - <convertion>
      <Auftragsnr>9999</Auftragsnr> 
      <AufDat>11</AufDat> 
    ...
      <VerpackungProzent>0.0200</VerpackungProzent> 
      <VersicherungProzent>0.0000</VersicherungProzent> 
      </convertion>
    Wobei... ich stelle gerade fest, auch wenn das XML-Dokument ohne "charset" auch angezeigt wird - Der ganze Code funktioniert nur fehlerfrei mit dem von dir zuletzt vorgeschlagenen Header:
    Code:
    header('Content-Type: text/xml; charset=utf-8');
    Vielen Dank!

    Heute soll das jQuery-Buch kommen. Dann schau ich mir die Übertragung im Zusammenhang mit JSON an.

  5. #50
    Daktari ist offline Eroberer
    registriert
    17-06-2011
    Beiträge
    70

    AW: JS in PHP einbinden

    Ich bin schon die ganze Zeit dabei mir serverseitig mit PHP eine Antwort zu erstellen die JSON-codiert ist - im Moment immer noch ohne jQuery..., aber ich bin leider nicht sehr weit gekommen mit dem was ich im Web gefunden habe.

    Das hier ist der serverseitige Code im Moment:
    Code:
    <?php
    header('Content-Type: application/json; charset=utf-8');  
    
    $encoding = 'UTF-8';
    
    $e = function ($value) use ($encoding) {
        return htmlspecialchars($value, ENT_QUOTES | ENT_HTML401, $encoding);
    };
    
    require_once('../konf/konf.ink.php');
    $db = new mysqli(DBHOST, DBBENUTZER, DBPASSWORT, DBNAME);
    
    $query = $db->query("SELECT tabLieferanten.LFirma1, tabLieferanten.Lieferantennr FROM tabLieferanten");
    $i = 0;
    	if($query) {
    		$LieferantenDaten = '';
    		while ($result = $query ->fetch_object()) {
    			$LieferantenDaten .= implode(', ', array_map('json_encode', array(
    				'Lieferantennr' => $e($result->Lieferantennr),
    				'LFirma1' => $e($result->LFirma1)
    			)));		
    		$i++;
    		}
    		if ($i > 0) {
    			echo "{". $LieferantenDaten ."}";
    		}
    	} 
    ?>
    Im Browser angezeigt wird mir das hier:
    Code:
    {"Firma GmbH""67", "Firma GmbH""68", ... }
    Ich habe mir sehr viele verschiedene Seiten angeschaut und habe u.a. hier gesehen wie ein Array JSON-codiert werden kann: Ajax jQuery Autocomplete im Einsatz | Technology Blog

    Aber weshalb werden mir die vorgestellten Bezeichner nicht angezeigt? Und müssen die Daten von "LFirma1" nicht in Anführungszeichen stehen? Dahinter verbergen sich ja keine Zahlen..

  6. #51
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: JS in PHP einbinden

    Der JSON String ist falsch. Auf der von dir verlinkten Seite steht doch wie es geht.

  7. #52
    Daktari ist offline Eroberer
    registriert
    17-06-2011
    Beiträge
    70

    AW: JS in PHP einbinden

    Es geht wie gesagt darum eine Auswahlliste anzeigen zu lassen (mit nur einem kleinen Teil der Daten). Hierzu wird serverseitig eine Schleife durchlaufen um alle Datensätze zu "sammeln".
    Jetzt überlege ich ob ich ALLE Daten in EINER geschweiften Klammer übermittele:
    Code:
    {"Lieferantennr":"85","LFirma1":"PapierGmbH","LFirma2":"z. Hd.: J\u00f6rg", "Lieferantennr":"149","LFirma1":"Batterien","LFirma2":""}
    oder ob ich jeden Datensatz schon innerhalb der Schleife, und dann jeden für sich in eigenen geschweiften Klammern übermittele:
    Code:
    {"Lieferantennr":"85","LFirma1":"PapierGmbH","LFirma2":"z. Hd.: J\u00f6rg"}{"Lieferantennr":"149","LFirma1":"Batterien","LFirma2":""}
    Aber wenn ich alles in einer Klammer übertrage müsste ich den einzelnen Tags einen Index zuweisen damit ich keine Daten überschreibe.
    Ich vermute das macht keinen Sinn, oder?
    Es ist nur so dass bei der zweitgenannten Lösung der Firbug offensichtlich eine schließende runde Klammer anstelle der zweiten öffnenden geschweiften Klammer moniert mit der Fehlermeldung "SyntaxError: missing ) in parenthetical".

    Hier noch mein augenblicklicher Code serverseitig:
    Code:
    print json_encode(array("Lieferantennr" => $e($result->Lieferantennr), 
    "LFirma1" => $e($result->LFirma1),
    "LFirma2" => $e($result->LFirma2)
    ));

  8. #53
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: JS in PHP einbinden

    Die geschweifte Klammer ist fundamental für JSON und es macht einen riesen Unterschied ob du das eine oder das andere machst. D.h. du musst erstmal rausfinden, wie du die Daten übertragen willst, ob als Array oder als Objekt

    Im Browser musst du nur eval machen, um mit den Daten zu arbeiten.

  9. #54
    Daktari ist offline Eroberer
    registriert
    17-06-2011
    Beiträge
    70

    AW: JS in PHP einbinden

    Macht es denn mehr Sinn jede einzelne Zeile der Liste auch einzeln, bei jedem Schleifendurchlauf serverseitig, zu übertragen? Oder ist es besser erst mal alle Daten zu sammeln und dann alles zu übertragen?
    Ich bekomme jetzt diesen Code, der auch durch den Online-Parser geht:
    Code:
    [{"Lieferantennr":"85"},{"LFirma1":"Batra GmbH"},{"LFirma2":"z. Hd.: J\u00f6rg K\u00fchnel"},{"Lieferantennr":"149"},{"LFirma1":"ED Batterien Service"},{"LFirma2":""}]
    Wäre es denn besser wenn ich alle Daten auf einmal übertrage und einen Code in dieser Form:
    Code:
    {"LFirma1":{"1":"gmbh","2":"test","3":"energie"},"LFirma2":{"1":"baustoffe","2":"metall","3":"mustermann"}}
    in ein JS-Objekt umsetze und dann auf die einzelnen Elemente zugreife?

  10. #55
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: JS in PHP einbinden

    Zitat Zitat von Daktari Beitrag anzeigen
    Macht es denn mehr Sinn jede einzelne Zeile der Liste auch einzeln, bei jedem Schleifendurchlauf serverseitig, zu übertragen? Oder ist es besser erst mal alle Daten zu sammeln und dann alles zu übertragen?
    das spielt keine Rolle. Da du im Browser sowieso erst auf die Daten zugreifst, wenn sie alle übertragen sind.

    Zitat Zitat von Daktari Beitrag anzeigen
    Ich bekomme jetzt diesen Code, der auch durch den Online-Parser geht:
    Code:
    [{"Lieferantennr":"85"},{"LFirma1":"Batra GmbH"},{"LFirma2":"z. Hd.: J\u00f6rg K\u00fchnel"},{"Lieferantennr":"149"},{"LFirma1":"ED Batterien Service"},{"LFirma2":""}]
    Wäre es denn besser wenn ich alle Daten auf einmal übertrage und einen Code in dieser Form:
    Code:
    {"LFirma1":{"1":"gmbh","2":"test","3":"energie"},"LFirma2":{"1":"baustoffe","2":"metall","3":"mustermann"}}
    in ein JS-Objekt umsetze und dann auf die einzelnen Elemente zugreife?
    Das sind zwei unterschiedliche Datenformate. Aber so wie ich das sehe macht das Erste keinen Sinn.
    (Nachtrag: Wobei auch das zweite seltsam ist. Wieso benutzt du Schlüssel mit Zahlen?)

    Du kannst übrigens Umlaute ohne Probleme mit AJAX übertragen

  11. #56
    Daktari ist offline Eroberer
    registriert
    17-06-2011
    Beiträge
    70

    AW: JS in PHP einbinden

    Bei meinem zweiten Beispiel hab ich mich leider etwas vertan, das wollte ich so nicht...

    SO wollte ich es eigentlich haben:
    Code:
    {"Lieferantennr":["85","149"],"LFirma1":["B GmbH","Batterien"],"LFirma2":["z. Hd.: J\u00f6rg ",""]}
    Das ging jetzt mit diesem Code:
    Code:
    $LieferantenDaten = array();
    $Lieferantennr = array();
    $LFirma1 = array();
    $LFirma2 = array();
    array_push($Lieferantennr, ($result->Lieferantennr)); 
    array_push($LFirma1, ($result->LFirma1)); 
    array_push($LFirma2, ($result->LFirma2)); 
    $LieferantenDaten = array_merge(array("Lieferantennr" => $Lieferantennr, "LFirma1" => $LFirma1, "LFirma2" => $LFirma2));	 
    print json_encode(($LieferantenDaten));
    Aber ich bekomme mein Auswahlliste noch nicht befüllt. Was mache ich denn falsch?:
    Code:
    var json_data_object = eval("(" + data + ")");
    $('#suggestionsBE').show('slow');  // öffnen des divs mit der Auswahlliste
    i = 0;
    while (json_data_object[i])	{
    $("#autoSuggestionsListBE").html(json_data_object[i].Lieferantennr + '  ' + json_data_object[i].LFirma1 + '  ' + json_data_object[i].LFirma2); // befüllen der Auswahlliste
    i++;	
    }

  12. #57
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: JS in PHP einbinden

    Zitat Zitat von Daktari Beitrag anzeigen
    Bei meinem zweiten Beispiel hab ich mich leider etwas vertan, das wollte ich so nicht...

    SO wollte ich es eigentlich haben:
    Code:
    {"Lieferantennr":["85","149"],"LFirma1":["B GmbH","Batterien"],"LFirma2":["z. Hd.: J\u00f6rg ",""]}
    D.h. du hast ein Objekt mit Arrays, du benutzt es aber genau umgekehrt. aber diese Art der Datenhaltung ist auch nicht sinnvoll. Wenn ich das richtig sehe hast du ein Array mit verschiedenen Firmen. Dann sollte dein Ergebnis auch ein Array sein, mit den jeweiligen Eigenschaften, wie z.b. Lieferantennr, LFirma1, LFirma2 - ansonsten kannst du dir die ganzen Schlüssel auch schenken und alles nur über Arrays zurück geben, dadurch wird aber der JS Code absolut unleserlich und unwartbar.

    Also es sollte im JS sowas ankommen:
    Code:
    [
    {Lieferantennr:85, LFirma1:"B GmbH", "LFirma2":"z. Hd.: J\u00f6rg "},
    {Lieferantennr: 149,LFirma1: "Batterien",LFirma2:""},
    /** usw */
    ]
    Dann kannst du Serverseitig die Auswahlfelder so füllen:

    Code:
    var json_data_object = eval(data);
    for(var i = 0; i < json_data_object.length; i++){
    
    $("#autoSuggestionsListBE").html(json_data_object[i].Lieferantennr + '  ' + json_data_object[i].LFirma1 + '  ' + json_data_object[i].LFirma2); // befüllen der Auswahlliste
    
    }

  13. #58
    Daktari ist offline Eroberer
    registriert
    17-06-2011
    Beiträge
    70

    AW: JS in PHP einbinden

    Ich bekomme jetzt im JS den richtigen Code geliefert, das passt schon mal.

    Nur mit dem Code
    Code:
    var json_data_object = eval(data);
    for(var i = 0; i < json_data_object.length; i++){
    $("#autoSuggestionsListBE").html(json_data_object[i].Lieferantennr + '  ' + json_data_object[i].LFirma1 + '  ' + json_data_object[i].LFirma2); // befüllen der Auswahlliste
    }
    wird immer nur der letzte übertragene Datensatz in der Auswahlliste eingetragen.

    Ich habe es schon mit
    Code:
    $("#autoSuggestionsListBE").append(json_data_object[i].Lieferantennr....
    versucht. Aber damit werden mir die Ergebnisse ohne Zeilenumbruch aneinandergereiht.
    Ist das der richtige Weg, oder muss ich das an der Stelle anders angehen?

  14. #59
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: JS in PHP einbinden

    Zitat Zitat von Daktari Beitrag anzeigen
    wird immer nur der letzte übertragene Datensatz in der Auswahlliste eingetragen.
    Aus dem Code wird nicht ersichtlich warum das überhaupt eine Auswahliste befüllen sollte.

  15. #60
    Daktari ist offline Eroberer
    registriert
    17-06-2011
    Beiträge
    70

    AW: JS in PHP einbinden

    Ich habe es vor ein paar Tagen mit jQuery soweit lösen können dass es im FF einwandfrei funktioniert.
    Hier binde ich das JS und jQuery ein:
    Code:
    $this->html .= '<script type="text/javascript" src="jquery/js/jquery-1.9.1.js"></script>';
    $this->html .= '<script type="text/javascript" src="jquery/js/jquery-ui-1.10.3.custom.js"></script>';
    $this->html .= '<link type="text/css" href="jquery/css/ui-lightness/jquery-ui-1.10.3.custom.css" rel="stylesheet"></link>';
    Das hier ist mein Eingabefeld:
    Code:
    $this->html .= "<div class='ui-widget'><label for='input'>Lieferanten-Suche: </label></div>
    <div class='ui-widget'><input id='input' onkeyup='lookupBE(this.value);' /></div>";
    Hier dann der AJAX-Aufruf und das befüllen der Auswahlliste, sowie das Befüllen weiterer Felder nach dem Auswählen eines Datensatzes aus der Auswahlliste:
    Code:
    function lookupBE (request) {
    	 $(function() {
    		$( "#input" ).autocomplete({
    		source: function( request, response ) {
    			$.ajax({
    				url: "ajax/AutoCompleteLieferantenAdresse.php",
    				dataType: "json",
    				data: {
    					style: "full",
    					name_startsWith: request.term
    				},
    				success: function( data ) {
    					var json_data_object = eval(data);
    					response( $.map( json_data_object, function( item ) {
    						return {
    							label: item.Lieferantenkurz + (item.LFirma1 ? ", " + item.LFirma1 : "") + ", " + item.LStadt,
    							LFirma1: item.LFirma1,
    							LStadt: item.LStadt	
    						}
    					}));
    				}
    			});
    		},
    		minLength: 2,
    		select: function( event, ui ) {
    			$('#LFirma1').val(ui.item.LFirma1);
    			$('#LStadt').val(ui.item.LStadt);
    		},
    		});
    	});
    }
    Hier wird im serverseitigen Code der Such-String verarbeitet:
    Code:
    WHERE LFirma1 LIKE '%".$_GET['name_startsWith']."%'
    und hier im gleichen Code das JSON zurückgegeben (vielleicht nicht ganz einwandfrei zusammengeschustert..):
    ...
    while ($result = $query ->fetch_object()) {
    $neueDaten = array("Lieferantennr" => $e($result->Lieferantennr),
    "LFirma1" => $e($result->LFirma1),
    "LStadt" => $e($result->LStadt)
    );
    $LieferantenDaten [] = ($neueDaten);
    $neueDaten = array();
    ...

    Nur mit dem IE kämpfe ich noch. Dort wird mir das CSS-File nicht korrekt eingebunden, der Code wird einfach ignoriert! Ich verwende momentan den unveränderten Code den ich bei jQuery heruntergeladen hatte, aber es funktioniert trotzdem noch nicht.
    Ich hoffe dass ich das auch noch in den Griff bekomme...

    Schon mal vielen Dank für alle Hilfe an dieser Stelle!!
    Geändert von Daktari (30-06-2013 um 20:35 Uhr)

Seite 4 von 5 ErsteErste 12345 LetzteLetzte

Ähnliche Themen

  1. JS einbinden MAC
    Von gwittmann im Forum JavaScript
    Antworten: 15
    Letzter Beitrag: 22-04-2005, 14:08
  2. .mdb einbinden
    Von Dyonisus im Forum Windows
    Antworten: 4
    Letzter Beitrag: 09-12-2002, 20:40
  3. .mdb einbinden
    Von Dyonisus im Forum Allgemeines
    Antworten: 1
    Letzter Beitrag: 09-12-2002, 15:55
  4. CGI Einbinden in PHP
    Von Andre Kiebis im Forum Serverseitige Programmierung
    Antworten: 4
    Letzter Beitrag: 10-08-2001, 08:03
  5. avi einbinden
    Von pendragon im Forum Allgemeines
    Antworten: 1
    Letzter Beitrag: 02-08-2001, 01:06

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •