Probleme mit Funktionen

stephandziurla

Erfahrenes Mitglied
^^ genauso gestaltet sich meine Frage:

Ich habe in einer Datei mehrere Funktionen, mit denen ich überprüfen möchte, ob ich in einem Formular bestimmte Eingaben gemacht habe. Wenn dem so ist, möchte ich gern function a() aufrufen, wenn nicht, soll function b() aufgerufen werden. Dummerweise bekomme ich jedoch eine Fehlermeldung, mit der ich nicht sooo viel anfangen kann, ich habe auch hier leider nichts brauchbares gefunden, vielleicht kann mir ja da jemand helfen:

Code:
Warning: Missing argument 1 for searchperson() in /bla/search1.php on line 70

Vielleicht zur Struktur: ich habe eine Funktion check(), die diese Überprüfung durchführt. Wenn Kriterien in check() zutreffen, soll searchperson() ausgeführt werden, wenn nicht, dann die Funktion searchproducts().
Ich komm da echt nicht weiter...
 
Die Funktion searchperson erwartet, dass Du mindestens einen Parameter übergibst. Dies tust Du offensichtlich nicht.

Ein bisschen von Deinem Code erleichtert die Hilfestellung.

Gruß hpvw
 
Hm sorry - war keine Absicht.

Also:

PHP:
function check($searchfirma,$searchansprechpartner,$searchort,$selectsearch,$buttonOR1,$buttonOR2) {
echo "Searchfirma:  ".$_POST['searchfirma']."<br>";
echo "Searchansprechpartner:  ".$_POST['searchansprechpartner']."<br>";
echo "Searchort:  ".$_POST['searchort']."<br>";
echo "Selectsearch if available:  ".$_POST['selectsearch']."<br>";
echo "Button 1:  ".$_POST['buttonOR1']."<br>";
echo "Button 2:  ".$_POST['buttonOR2']."<br>";
if (isset($searchfirma) || ($searchansprechpartner) || ($searchort))
  {searchperson();} else {echo "No things selected. Try again!";}
//für den Fall, dass isset($searchfirma....... == FALSE ist, soll dann die Funktion searchproducts() aufgerufen werden
}

...

Hier die erste Funktion, die unterschiedlich von den Eingaben in check() aufgerufen werden soll:
PHP:
function searchperson($searchfirma,$searchansprechpartner,$searchort,$buttonOR1,$buttonOR2) { 
...
...
}

Hier die zweite Funktion, für den Fall, dass der erste Fall bei check() nicht zutrifft.
PHP:
function searchproducts($searchfirma,$searchansprechpartner,$searchort,$selectsearch,$buttonOR1,$buttonOR2) {
...
...
}
 
Wie gesagt, erwartet die Funktion, dass Du ihr Parameter übergibst. In dem vom Interpreter bemängelten Aufruf übergibst Du keine.

Gruß hpvw
 
Hmmm...also entweder, ich stelle mich gerade ziemlich dumm an, oder ich seh wirklich den Wald vor lauter Bäumen nicht. Ich übergebe doch - bspw. ............. hmm, gerade beim Schreiben ist es mir aufgefallen - SORRY!! Ich würde sagen, letztes trifft zu!

Es müsste bei der Funktion check(); im letzten Abschnitt heißen:
PHP:
if (isset..............  {searchperson($searchfirma,$searchansprechpartner,$searchort,$selectsearch,$buttonOR1,$buttonOR2);} else {echo "No things selected. Try again!";}

Naja....wie auch immer - danke *grins*
 
Also bei diesem abenteuerlichen Konstrukt blick ich nicht ganz durch, aber
PHP:
function searchperson($searchfirma,$searchansprechpartner,$searchort,$buttonOR1,$buttonOR2) { 
...
...
}
läßt mich vermuten, dass du die Werte von 2 Buttons an die Funktion übergeben willst, von denen natürlich nur einer geklickt worden sein kann ...

Lösung:
PHP:
function searchperson($searchfirma,$searchansprechpartner,$searchort,$buttonOR1="",$buttonOR2="") { 
...
...
}

Bessere Lösung:
Code:
<input type="text" name="search[firma]">
<input type="submit" name="search[person]">
usw.
PHP:
function searchperson($search) { 
...
...
}
 
Zurück