selfmade01: jquery Dialog header tags zwingend?

Hallo,

ich öffne mit jquery dialog und load ein popup in das ein php-code über load geladen wird.

Wenn ich mir nur Text oder images anzeigen lasse, funktioniert alles einwandfrei.
wobei ich hier nicht load verwende sondern .html

var $dialog = $('<div></div>')  
.html('<iframe style="border: 0px; " src="' + url + '" width="100%" height="100%"></iframe>')  
   .dialog({  
  
.... dialog Anweisungen

nun wollte ich load verwenden

Text zeigt er wieder an.

Wenn ich jedoch ein Formular mit <input> Felder anzeigen lassen möchte
zeigt er gar nichts an... bis auf ein wenig unformatierter Text.

Muss ich so eine Dialog-Seite wo der Content ja bei mir durch eine php-Seite erzeugt wird, wie eine normale HTML-Seite aufbauen also mit kompletten html-kopf?

oder wieso zeigt er mir die input-Felder nicht an?

Grüße Jürgen

  1. Liebe(r) selfmade01,

    Du erzeugst mit jQuery also ein Iframe-Element. Dieses holt sich das anzuzeigende Dokument (ja, ein vollständiges, eigenständiges, fertiges HTML-Dokument) von einer PHP-Resource ab, die man auch so direkt über die URL im Browser anzeigen lassen könnte und die natürlich ein vollständiges, eigenständiges, fertiges HTML-Dokument ausliefert.

    Und was hattest Du jetzt daran nicht verstanden?

    Liebe Grüße,

    Felix Riesterer.

    --
    "Wäre die EU ein Staat, der die Aufnahme in die EU beantragen würde, müsste der Antrag zurückgewiesen werden - aus Mangel an demokratischer Substanz." (Martin Schulz, Präsident des EU-Parlamentes)
    1. Hallo

      Und was hattest Du jetzt daran nicht verstanden?

      ich dachte wenn ich mir nur Text anzeigen lasse dann sollten meine input-felder auch angezeigt werden.
      Da diese nicht angezeigt werden verstand ich das nicht.

      Es liegt also daran, so wie Du es schreibst, das ich meinen kompletten HTML-Kopf weggelassen habe oder?

      Grüße Jürgen

      ps... da ich mit einem css-template arbeite müsste ich dann wohl auch meine stylesheet-angaben machen ?
      das wollte ich vermeiden da ich sonst wegen einem kleinen dialog-Fenster eine zu große Datei (stylesheet) laden müsste.

      Macht man das dann mit jquery und ändert via script im dialog-fenster die css-angaben?

      Grüße Jürgen

      1. Lieber selfmade01,

        ich dachte wenn ich mir nur Text anzeigen lasse dann sollten meine input-felder auch angezeigt werden.

        Du schmeißt noch so einige Konzepte durcheinander.

        Der Browser benötigt ein HTML-Dokument zum Anzeigen einer Seite - egal, ob es sich um das gesamte Browserfenster/-tab handelt, oder einen (I)Frame.

        Was in dem Dokument steht, entscheidest Du, aber das Dokument sollte formal korrekt sein (ggf. mit Validator prüfen!).

        Es liegt also daran, so wie Du es schreibst, das ich meinen kompletten HTML-Kopf weggelassen habe oder?

        Keine Ahnung. Du schreibst weder HTML-Code, der im Iframe ankommt, noch postest Du einen Link zu einer Beispielseite...

        ps... da ich mit einem css-template arbeite müsste ich dann wohl auch meine stylesheet-angaben machen ?

        Keine Ahnung, was ein "css-template" sein soll. Daher sage ich jetzt: Du referenzierst Dein Stylesheet wie gewohnt.

        das wollte ich vermeiden da ich sonst wegen einem kleinen dialog-Fenster eine zu große Datei (stylesheet) laden müsste.

        Was ein Unsinn! Wenn der Browser die CSS-Datei zweimal braucht (Hauptseite und Dialog-Fenster), dann nimmt er sie beim zweiten Mal aus dem Cache und lädt sie nicht erneut vom Server - wenn Du die Datei nicht von einem PHP-Script ausgeben lässt, das die passenden Requests nicht korrekt zu beantworten weiß.

        Macht man das dann mit jquery und ändert via script im dialog-fenster die css-angaben?

        Nein.

        Liebe Grüße,

        Felix Riesterer.

        --
        "Wäre die EU ein Staat, der die Aufnahme in die EU beantragen würde, müsste der Antrag zurückgewiesen werden - aus Mangel an demokratischer Substanz." (Martin Schulz, Präsident des EU-Parlamentes)
        1. Hallo,

          hier ist der Code,
          er zeigt mir einfach keine <input> Felder an

          hier der Script-Teil. Title wird geändert, auch die Buttons kommen sauber

            
          $( "#editinfo" ).click(function(){  
          	var infoId = $(this).attr('data-id');  
          	var url = "incl/getData/getInfoData.php?func=editDetailDialog&table=info&id="+infoId;  
          	 $.widget("ui.dialog", $.extend({}, $.ui.dialog.prototype, {  
          			_title: function(title) {  
          			var $title = this.options.title || '&nbsp;'  
          			if( ("title_html" in this.options) && this.options.title_html == true )  
          			title.html($title);  
          			else title.text($title);  
          			}  
          			}));  
          		var titletext = '<?php echo _("Show Info Details ");?>';  
          		var $modalDialog = $('<div></div>', { 'class': 'exampleModal', 'id': 'exampleModal1' })  
          		   .appendTo('body')  
          		   .dialog({  
          		   autoOpen: false,  
          		   //  
          		   height: 625,  
          		   width: 650,  
          		   show: 'fold',  
          		   title: "<div class='widget-header'><h4 class='smaller'><i class='ace-icon fa fa-leaf green'></i>&nbsp;"+titletext+"</h4></div>",  
          		   title_html: true,  
          		   buttons: [  
          				  
          			{  
          			html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; <?php echo _('Close');?> ",  
          			"class" : "btn btn-xs",  
          			click: function() {  
          			$( this ).dialog( "close" );  
          			}  
          		}  
          		],  
          		modal: true  
          	   });  
            
           $modalDialog.load(url);  
           $modalDialog.dialog("open");  
            
          });  
          
          

          hier der php-code des dialog-Fensters

            
          elseif($func == "editDetailDialog"){  
          	$id			=	$_GET['id'];  
          	$mysqltable	=	$_GET['table'];  
          	  
          			$s ='<!DOCTYPE html>';  
          			$s .='<html>';  
          			$s .='<head></head>';  
          			$s .='<body>';	  
          			$s .= '<table><tbody>';  
            
          			  
          			  
          			$s .='<form action="" method="post">';  
          			$s .= '<tr><td>'._("Name").'</td>';  
          			$a .= '<td><input type="text" id="name" name="name" ></td></tr>';  
          			$s .= '<tr><td>'._("Name 1").'</td>';  
          			$a .= '<td><input type="text" id="name1" name="name1" placeholder="'._("Name 1").' "></td></tr>';  
          			$s .= '<label>'._("cm").'</label>';  
          			$a .= '<input type="text" id="cm" name="cm" placeholder="'._("in cm").' ">';  
          			$s .= '<label>'._("%").'</label>';  
          			$a .= '<input type="text" id="percent" name="percent" placeholder="'._(" in %").' ">';  
          			$s .= '<label>'._("Information").'</label>';  
          			$a .= '<input type="text" id="info" name="info" placeholder="'._("Information").' ">';  
          			$s .= '<label>'._("Information 2").'</label>';  
          			$a .= '<input type="text" id="selfinfo" name="selfinfo" placeholder="'._("Your Informations").' ">';  
          			$a .="</form>";  
          			$s .= "</tbody></table>";  
          			  
          			$s .="</body></html>";  
          			//}  
          echo $s;	  
          }  
          
          

          Keine Ahnung wieso er die input-Felder nicht anzeigt und ansonsten die ganze Formatierung auch nicht

          Grüße Jürgen

          1. ps...

            das mit der

              
              
            var $modalDialog = $('<div></div>', { 'class': 'exampleModal', 'id': 'exampleModal1' })  
            
            

            war nur ein Test, ich hatte es auch schon so probiert

              
            var $modalDialog = $('<div></div>')  
            
            

            Grüße Jürgen

            1. sorry,
              phooo bin ich do...

              ich hatte im php-Code einiges durcheinander gebracht und sah den Wald vor lauter Bäumen nicht.
              Ich hatte wohl zu lang in die Glotze geschaut.
              sorry nochmal

              die $s waren mit $a vermischt.grrrrrr

              Tut mir wirklich leid

              Grüße Jürgen

        2. Om nah hoo pez nyeetz, Felix Riesterer!

          Was ein Unsinn!

          Was ein Anglizismus!

          Matthias

          --
          Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Dress und Dressing.