Jester73Medlem sedan mars 2012121 inlägg Hej
Antagligen har jag bara glömt ett komma någonstans men here goes!
Varför returnerar följande kod inte en array?
function rensaFormular(){
while (list($key, $val)=each($_POST)){
if (!strpos($key, "exc_",0)==0) {
$cleanvalue[$key]=$val;
}
}
return $cleanvalue;
}
Jag har en annan funktion som däremot returnerar en array utan problem, vad är skillnaden?
//Månadsarray
function manaderNum(){
$mandader[1]="Januari";
$mandader[2]="Februari";
$mandader[3]="Mars";
$mandader[4]="April";
$mandader[5]="Maj";
$mandader[6]="Juni";
$mandader[7]="Juli";
$mandader[8]="Augusti";
$mandader[9]="September";
$mandader[10]="Oktober";
$mandader[11]="Novmeber";
$mandader[12]="December";
return $mandader;
}
skriv ==each istället för =each
Jester73Medlem sedan mars 2012121 inlägg Kan tillägga att ovan funktion anropas från följande funktion
function buildSQLUpdate($tabell, $urval, $addCol,$addValue){
$temp=rensaFormular($_POST);
print_r($temp);
//array_pop($_POST);
//array_shift($_POST);
//while (list($key, $val)=each($temp)){
// $tmpvalues=$tmpvalues." ".$key."='".$val."', ";
//}
$tmpvalues=trim($tmpvalues);
$tmpvalues=substr($tmpvalues,0,strlen($tmpvalues)-1);
$sqlQ="UPDATE $tabell SET $tmpvalues $urval";
return $sqlQ;
cascaMedlem sedan feb. 20005 891 inlägg Eftersom du kör en if-sats så är det fullt möjligt att du aldrig skapar $cleanvalue som array.
Jester73Medlem sedan mars 2012121 inlägg Ok men hur skall jag lösa problemet.
Jag provade att sätta upp en array utfrån en sträng men då hade den inte ens läst in $_POST till funktionen?
Det går väl att anropa $_POST direkt i den funktionen?
cascaMedlem sedan feb. 20005 891 inlägg
Jester73 skrev:
Ok men hur skall jag lösa problemet.
Jag provade att sätta upp en array utfrån en sträng men då hade den inte ens läst in $_POST till funktionen?
Det går väl att anropa $_POST direkt i den funktionen?
Vad jag menade i första hand var att kontrollera if-satsen, för att se vad som händer.
Men det är också en ohållbar lösning att inte tänka på möjligheten att inga värden validerar, och vad som händer när arrayen inte returnerar nånting.
function rensaFormular(){
$cleanvalue = false;
foreach($_POST as $key => $value){
print "<br> loopar post med värdet $value";
if (!strpos($key, "exc_",0)==0) {
print "<br>ifsats sann";
$cleanvalue[$key]=$val;
}
return $cleanvalue;
}
}
kör foreach istället och felsök
eller kör extract på post ;)
Jester73Medlem sedan mars 2012121 inlägg Jo, jag har felsökt på indatat i $_POST också och när jag började denna post så hade jag en array i funktionen rensaFormular.
Men det verkar fungera lite si och så vilket i sig är underligt....får nog börja om lite.
Jester73Medlem sedan mars 2012121 inlägg Har exprimenterat en hel del och det verkar som detta fungerar.
function rensaFormular(){
foreach($_POST as $key=>$value){
if (substr_count($key, "exc_",0)==0) {
$cvalues[$key]=$value;
}
}
return $cvalues;
}