Ik heb 2 contracten met hoofdcodes, 1 is bijvoorbeeld '13' en wordt in map '13' geplaatst en een andere heeft bijvoorbeeld '00000013' (met voorloopnullen) en wordt in map '00000013' geplaatst. Maar als we hoofdcodes inlezen, dan verliezen wij de voorloopnullen, zodat we de verkeerde documenten te zien krijgen. Hoe krijg ik de hoofdcode ingelezen uit de juiste map?

<?php
if(isset($_GET['bedrijfcode']) && isset($_GET['hoofdcode'])) 
{
	$FileRetreiverType =  FileRetreiverTypeEnums::Tabellen; 
	$Code  = $_GET['bedrijfcode']; 
	$Code2  = $_GET['hoofdcode']; 
	$Year = $_GET['jaar']; 
	$retreiver = new FileRetreiver($Year, $FileRetreiverType, $Code, $Code2); 
	$response .= $retreiver->GetResponse($ReturnFormat); 
}

class FileRetreiver
{
	public function __construct($year, $retreiverType, $id, $id2='')
	{
		$this->FileRetreiverType = $retreiverType; 
		$this->Id = $id; 
		$this->Id2 = $id2; 
		$this->Year = $year; 
	}
?>


...

De map op internet wordt opgebouwd op de volgende manier:
Je hebt bijvoorbeeld een map: ../2017/Tabellen/321/13/
en een map: ../2017/Tabellen/321/00000013/

$Response =  "../" . $this->Year .  "/Tabellen/" . $this->Id . "/" . $this->Id2 . "/";
}


PHP heeft automatische type juggling.

Zodra je dus een operator gebruikt die bedoeld is om te rekenen (zoals +, -, / en *) zal van '000123' 123 gemaakt worden. Ergens doe je dat anders verlies je die nullen niet. Er zijn natuurlijk ook PHP functies die met de getallen gaan rekenen. de Concatenation operator (.) is voor strings en die kun je in ieder geval gewoon gebruiken.
Wesley Norco op 27/11/2017 11:21:53

Maar als we hoofdcodes inlezen, dan verliezen wij de voorloopnullen,

En hoe staan die codes in het in te lezen bestand?
Inlezen in database? Hoe komt het daar dan in te staan, met of zonder?
Ik kan het nog niet vinden. Want op verschillende plekken staat de code nog netjes met voorloop nullen. Misschien ga ik het straks nog even met een collega bekijken.
json_encode() met JSON_NUMERIC_CHECK kent ook dit soort "geintjes"
Dit staat er in. En in $FileArray staan alle paden in.

if ($format == ReturnFormatEnum::JSON)
{
$Response = json_encode(array('files'=>$FileArray));
}


[size=xsmall]Toevoeging op 27/11/2017 20:33:58:[/size]

Wesley Norco op 27/11/2017 20:19:19

Dit staat er in. En in $FileArray staan alle paden in. (Alleen geen numeric_check)

if ($format == ReturnFormatEnum::JSON)
{
$Response = json_encode(array('files'=>$FileArray));
}



We hebben hem gevonden:

foreach ($result as $item)
{
if (strtolower($searchItem) == strtolower($item)) == wordt ===
....
}

Maar hoe doe je dat met console.log() ivm JSON?
console.log is een mogelijkheid binnen JavaScript, voor al je jouw JSON daar ophaalt en verwerkt. Indien je PHP gebruikt kan je gerust [php]var_dump[/php] gebruiken.

Reageren