php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.02.2005, 11:09  
Gast
 
Beiträge: n/a
Standard Problem mit Objekten in PHP-GTK

hier mein Problem......ich weiß es ist recht viel zu lesen......hoffe jemand macht sich die mühe.......

das ist der Button, der die Funktion new_rec_win() aufrufen soll....
PHP-Code:
<?php
$btn_neu 
= &new GtkButton("Neu");
$btn_neu->connect_object('clicked''new_rec_win');
?>
die Funktion new_rec_win()

PHP-Code:
<?php
function new_rec_win(){
    global 
$kund_arr;
    
$id $kund_arr[0];    
    
$new_rec_win = &new GtkWindow();
    
$new_rec_win->set_title("Neuer Kunde");
        
    
$vbox = &new GtkVbox();
            
    
$txt_firma = &new GtkEntry();
    
$lbl_firma = &new GtkLabel("Firma");
    
$firma_hbox = &new GtkHbox();
    
$firma_hbox->pack_start($lbl_firma);
    
$firma_hbox->pack_end($txt_firma);
    
    
$txt_tel = &new GtkEntry();
    
$lbl_tel = &new GtkLabel("Telefon");
    
$tel_hbox = &new GtkHbox();
    
$tel_hbox->pack_start($lbl_tel);
    
$tel_hbox->pack_end($txt_tel);
    
    
$txt_fax = &new GtkEntry();
    
$lbl_fax = &new GtkLabel("Fax");
    
$fax_hbox = &new GtkHbox();
    
$fax_hbox->pack_start($lbl_fax);
    
$fax_hbox->pack_end($txt_fax);
    
    
$txt_mail = &new GtkEntry();
    
$lbl_mail = &new GtkLabel("E-Mail");
    
$mail_hbox = &new GtkHbox();
    
$mail_hbox->pack_start($lbl_mail);
    
$mail_hbox->pack_end($txt_mail);
    
    
$txt_adr1 = &new GtkEntry();
    
$lbl_adr1 = &new GtkLabel("Adresse 1");
    
$adr1_hbox = &new GtkHbox();
    
$adr1_hbox->pack_start($lbl_adr1);
    
$adr1_hbox->pack_end($txt_adr1);
    
    
$txt_adr2 = &new GtkEntry();
    
$lbl_adr2 = &new GtkLabel("Adresse 2");
    
$adr2_hbox = &new GtkHbox();
    
$adr2_hbox->pack_start($lbl_adr2);
    
$adr2_hbox->pack_end($txt_adr2);
    
    
$txt_plz = &new GtkEntry();
    
$lbl_plz = &new GtkLabel("PLZ");
    
$plz_hbox = &new GtkHbox();
    
$plz_hbox->pack_start($lbl_plz);
    
$plz_hbox->pack_end($txt_plz);
        
    
$txt_stadt = &new GtkEntry();
    
$lbl_stadt = &new GtkLabel("Stadt");
    
$stadt_hbox = &new GtkHbox();
    
$stadt_hbox->pack_start($lbl_stadt);
    
$stadt_hbox->pack_end($txt_stadt);
    
    
$btn_send = &new GtkButton("Neu");
    
$btn_send->connect_object('clicked''get_new');
        
    
$vbox->pack_start($firma_hbox);
    
$vbox->pack_start($tel_hbox);
    
$vbox->pack_start($fax_hbox);
    
$vbox->pack_start($mail_hbox);
    
$vbox->pack_start($adr1_hbox);
    
$vbox->pack_start($adr2_hbox);
    
$vbox->pack_start($plz_hbox);
    
$vbox->pack_start($stadt_hbox);
    
$vbox->pack_start($btn_send);
        
    
$new_rec_win->add($vbox);
    
$new_rec_win->show_all();
        
}
?>
funktion get_new()

PHP-Code:
<?php
function get_new(){
    global 
$txt_firma$txt_tel$txt_fax$txt_mail$txt_adr1$txt_adr2$txt_plz$txt_stadt;
    
$firma $txt_firma->get_text(); //hier soll der Fehler sein
    
$tel $txt_tel->get_text();
    
$fax $txt_fax->get_text();
    
$mail $txt_mail->get_text();
    
$adr1 $txt_adr1->get_text();
    
$adr2 $txt_adr2->get_text();
    
$plz $txt_plz->get_text();
    
$stadt $txt_stadt->get_text();
    
new_record($firma$tel$fax$mail$adr1$adr2$plz$stadt);
}


?>


Fehlermeldung: Call to a member function on a non-object.....

hoffe mir kann jemand helfen.....
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.02.2005, 11:20  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

würde mal sagen in da in deiner oberen funktion $txt_firma nicht global gemacht wurde, kannst du es in der 2ten funktion auch nciht ansprechen.
also auch in der ersten funktion alle global machen.

btw immer mit error_reporting(E_ALL); arbeiten, dann bekommst du schon früh genug den fehler, dass die variable nicht existiert.


mfg
robo47
robo47 ist offline  
Alt 23.02.2005, 11:38  
Gast
 
Beiträge: n/a
Standard

funzt immer noch nicht....
 
Alt 23.02.2005, 12:12  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

was für fehler bekommst du nach dem umstellen der error_reportings?
was sagt ein var_dump($txt_firma); vor der zeile die den fehler aufwirft?
robo47 ist offline  
Alt 23.02.2005, 12:16  
Gast
 
Beiträge: n/a
Standard Re: Problem mit Objekten in PHP-GTK

Zitat:
Zitat von Joey P.
hier mein Problem......ich weiß es ist recht viel zu lesen......hoffe jemand macht sich die mühe.......

das ist der Button, der die Funktion new_rec_win() aufrufen soll....
PHP-Code:
<?php
$btn_neu 
= &new GtkButton("Neu");
$btn_neu->connect_object('clicked''new_rec_win');
?>
die Funktion new_rec_win()

PHP-Code:
<?php
function new_rec_win(){
    global 
$kund_arr;
    
$id $kund_arr[0];    
    
$new_rec_win = &new GtkWindow();
    
$new_rec_win->set_title("Neuer Kunde");
# alle weiteren Objekte werden ebenfalls lokalen Variablen in einer Funktion zugewiesen
}
?>
funktion get_new()

PHP-Code:
<?php
function get_new(){
    global 
$txt_firma$txt_tel$txt_fax$txt_mail$txt_adr1$txt_adr2$txt_plz$txt_stadt;
    
$firma $txt_firma->get_text(); //hier soll der Fehler sein
}
?>
Fehlermeldung: Call to a member function on a non-object.....
Verständlich. So wie Du mit Objekten und Instanzen hantierst, ist es falsch, weil die Variablen lokale Funktionsvariablen sind, die nach Funktionsende ihr kurzes Leben aushauchen.

Zitat:
hoffe mir kann jemand helfen.....
Das hieße: Script wegschmeißen und komplett neuschreiben. Das wirste wohl selbst machen müssen...
 
Alt 23.02.2005, 13:09  
Gast
 
Beiträge: n/a
Standard

var_dump($txt_firma) gibt NULL zurück
 
Alt 23.02.2005, 13:22  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

also ist es dort nicht vorhanden. sprihc du machst es in der funktion zwar global, aber in der wo du das objekt erstellst, nicht. zeig doch mal was du bist jetzt geändert hast.

und was für ausgaben hast du nach dem aktivieren von error_reporting(E_ALL); ? müsste zumindest auch einen fehler ausspucken :P
robo47 ist offline  
Alt 23.02.2005, 13:26  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Joey P.
var_dump($txt_firma) gibt NULL zurück
Na klar. Alle Instanzen, die Du in der Funktion new_rec_win() erzeugt hast, existieren nicht im globalen Namensraum, weil es lokale Funktionsvariablen sind.

Kapitel 17. Funktionen
Geltungsbereich von Variablen

Besser wäre es, wenn Du die Objekte als Attribute in einer "Masterklasse" speichern würdest. Das ist einfacher als die üblichen Global-Orgien.
 
Alt 23.02.2005, 13:32  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php

function new_rec_win(){
       global 
$txt_firma$txt_tel$txt_fax$txt_mail$txt_adr1$txt_adr2$txt_plz$txt_stadt;
        global 
$kund_arr;
        
$id $kund_arr[0];    
        
$new_rec_win = &new GtkWindow();
        
$new_rec_win->set_title("Neuer Kunde");
        
        
$vbox = &new GtkVbox();
                
        
$txt_firma = &new GtkEntry();
        
$lbl_firma = &new GtkLabel("Firma");
        
$firma_hbox = &new GtkHbox();
        
$firma_hbox->pack_start($lbl_firma);
        
$firma_hbox->pack_end($txt_firma);
        
        
$txt_tel = &new GtkEntry();
        
$lbl_tel = &new GtkLabel("Telefon");
        
$tel_hbox = &new GtkHbox();
        
$tel_hbox->pack_start($lbl_tel);
        
$tel_hbox->pack_end($txt_tel);
        
        
$txt_fax = &new GtkEntry();
        
$lbl_fax = &new GtkLabel("Fax");
        
$fax_hbox = &new GtkHbox();
        
$fax_hbox->pack_start($lbl_fax);
        
$fax_hbox->pack_end($txt_fax);
        
        
$txt_mail = &new GtkEntry();
        
$lbl_mail = &new GtkLabel("E-Mail");
        
$mail_hbox = &new GtkHbox();
        
$mail_hbox->pack_start($lbl_mail);
        
$mail_hbox->pack_end($txt_mail);
        
        
$txt_adr1 = &new GtkEntry();
        
$lbl_adr1 = &new GtkLabel("Adresse 1");
        
$adr1_hbox = &new GtkHbox();
        
$adr1_hbox->pack_start($lbl_adr1);
        
$adr1_hbox->pack_end($txt_adr1);
        
        
$txt_adr2 = &new GtkEntry();
        
$lbl_adr2 = &new GtkLabel("Adresse 2");
        
$adr2_hbox = &new GtkHbox();
        
$adr2_hbox->pack_start($lbl_adr2);
        
$adr2_hbox->pack_end($txt_adr2);
        
        
$txt_plz = &new GtkEntry();
        
$lbl_plz = &new GtkLabel("PLZ");
        
$plz_hbox = &new GtkHbox();
        
$plz_hbox->pack_start($lbl_plz);
        
$plz_hbox->pack_end($txt_plz);
        
        
$txt_stadt = &new GtkEntry();
        
$lbl_stadt = &new GtkLabel("Stadt");
        
$stadt_hbox = &new GtkHbox();
        
$stadt_hbox->pack_start($lbl_stadt);
        
$stadt_hbox->pack_end($txt_stadt);
        
        
$btn_send = &new GtkButton("Neu");
        
$btn_send->connect_object('clicked''get_new');
        
        
$vbox->pack_start($firma_hbox);
        
$vbox->pack_start($tel_hbox);
        
$vbox->pack_start($fax_hbox);
        
$vbox->pack_start($mail_hbox);
        
$vbox->pack_start($adr1_hbox);
        
$vbox->pack_start($adr2_hbox);
        
$vbox->pack_start($plz_hbox);
        
$vbox->pack_start($stadt_hbox);
        
$vbox->pack_start($btn_send);
        
$new_rec_win->add($vbox);
        
$new_rec_win->show_all();
        
    }
    
    function 
get_new(){
        global 
$txt_firma$txt_tel$txt_fax$txt_mail$txt_adr1$txt_adr2$txt_plz$txt_stadt;
        echo 
"\n";
        
var_dump($txt_firma);
        echo 
"\n";
        
$firma $txt_firma->get_text();
        
$tel $txt_tel->get_text();
        
$fax $txt_fax->get_text();
        
$mail $txt_mail->get_text();
        
$adr1 $txt_adr1->get_text();
        
$adr2 $txt_adr2->get_text();
        
$plz $txt_plz->get_text();
        
$stadt $txt_stadt->get_text();
        
new_record($firma$tel$fax$mail$adr1$adr2$plz$stadt);
    }


?>
 
Alt 23.02.2005, 13:40  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

naja, da die variable nicht ankommt, kann man isch hier nur wiederholen, entweder du machst mal sowas in der art und schaust was an fehlern ausgegeben wird oder blub?

PHP-Code:
<?php
error_reporting
(E_ALL);
$btn_neu = &new GtkButton("Neu");
$btn_neu->connect_object('clicked''new_rec_win');
?>

abgesehen davon scheint das hier im profi-forum falsch zu sein, könnte ein mod vieleicht mal verschieben.

mfg
robo47
robo47 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php gtk get_text, php-gtk, \php-gtk\, php gtk objekte, gtkentry in gtklabel ausgeben, php gtk2 gtk entry in gtk label ausgeben, gtk hbox, vbox.pack_start

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:08 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.