PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Paramterübergabe an eine Fkt fehlgeschlagen?



jasmen
10.08.2004, 13:18
Hallo,

ich muss bei mir auf der Arbeit ein paar Anpassungen an einer Webanwendung durchführen, wobei ich ein paar PHP-Scripte ändern muss. Seit heute morgen hänge ich an einem und demselben Script fest und komme nicht weiter :mauer: ! Der Original-Code sieht so aus:

bug_new.php


echo "<form name=\"bugnew\" action=\"bug_ins.php\" method=\"post\">\n";
.....
$obj = current($this->obj->parent->role[PROD_ROLE_MANAGER]);
$sid = $obj->id;
.....

echo "</form>";


bug_ins.php


.....
$b->setSolver(current($b->parent->role[PROD_ROLE_MANAGER]));
.....


bug.pinc


function setSolver(&$solver) {
if ( $this->solver->id != $solver->id )
{
$this->modified[] = array ( "field" => "BugAssignedTo" , "old" =>$this->solver->id ,
"new" => $solver->id);
$this->solver = $solver;
}
return;
}


Das funktioniert einwandfrei! Alle Werte werden richtig an die Fkt setSolver() übergeben! Genauso
möchte ich einen anderen Parameter an die Funktion setSolver() übergeben, das
klappt aber nicht!

bug_new.php


echo "<form name=\"bugnew\" action=\"bug_ins.php\" method=\"post\">\n";
.....
$this->addHidden("sid",$bugsearchsolver);
$sid = $obj->id;
.....
echo "</form>";



bug_ins.php


.....
$b->setSolver(current($b->sid));
.....


Sieht jemand den Fehler? ?(

Danke und Gruss
jasmen

jasmen
24.08.2004, 12:16
Hallo, habe das Problem leider immer noch nicht gelöst! Hier ist es noch mal:

Ich versuche einen Wert




$sid=$_POST['sid'];
$b->setSolver(current($b->sid));



an folgende Funktion zu übergeben, leider erfolglos:




function setSolver(&$solver)
{
if ( $this->solver->id != $solver->id )
{
$this->modified[] = array ( "field" => "BugAssignedTo" , "old" => $this->solver->id , "new" =>$solver->id);
$this->solver = $solver;
}
return;
}


Ich verstehe nicht warum es nicht geht!
Kann mir jemand helfen?

Danke
jasmen

Figurehead
24.08.2004, 13:30
Original von jasmen
Hallo, habe das Problem leider immer noch nicht gelöst! Hier ist es noch mal:

Ich versuche einen Wert




$sid=$_POST['sid'];
$b->setSolver(current($b->sid));



Hier scheint der Fehler zu liegen. So wie es aussieht, übergibst du der Funktion 'setSolver' einen Integer-Wert, diese erwartet jedoch ein Objekt!
current($b->sid) muss ein Objekt vom Typ Solver zurückliefern!







function setSolver(&$solver)

// Zum Testen einfügen
if (!is_object($solver)) die("Es muss ein instanziiertes Objekt der Klasse Solver übergeben werden");
// Objekt ausgeben
echo "So sieht das übergebene Objekt aus:<pre>" . print_r($solver) . "</pre>";

{
if ( $this->solver->id != $solver->id )
{
$this->modified[] = array ( "field" => "BugAssignedTo" , "old" => $this->solver->id , "new" =>$solver->id);
$this->solver = $solver;
}
return;
}


Füge diesen Testcode ruhig auch mal in den Orginalcode ein, vielleicht macht es dann Klick bei dir.