arreys

Status
Niet open voor verdere reacties.

phobia

Terugkerende gebruiker
Lid geworden
4 sep 2006
Berichten
1.777
ik laat 2 arreys aanmaken door een include
maar nu wil ik dat weergeven op een form
nu heb ik het volgende bedacht

Code:
<?
include('../../functions/user.php');
foreach ($lbladmin as $tabel) {
 print "<tr><td style ='font-size: x-small; width: 172px;'class='style1'>".$tabel."</td>";
 }
 foreach ($admin as $value) {
 print "<td><input name='debnr' type='text' style ='font-size: x-small; width: 200px;'value='"
 .$value."'></td></tr>";
}
 ?>

Maar dit komt zo niet netjes in in een tabel te staan.
 
nu denk ik dat ik op de goede weg zit, maar ik krijg hem niet aan de praat!

Code:
<?
$i = 0;
include('../../functions/user.php');
foreach ($lbladmin as $tabel) {
 print "<tr><td style ='font-size: x-small; width: 172px;'class='style1'>".$tabel."</td>";
 

 print "<td><input name='debnr' type='text' style ='font-size: x-small; width: 200px;'value='"
 .$value['$i']."'></td></tr>";
 $i++
}
 ?>
volgend mij moet ik een teller erin gebruiken om $value mee te laten lopen met $tabel.
 
Nee, je geeft er ook geen table tags om...

PHP:
<?php

$i = 0;
echo '<table>';

foreach ( $lbladmin as $table ) {
  echo '<tr><td style="font-size: x-small; width: 172px;" class="style1">', $tabel, '</td>';
  echo '<td><input name="debnr" type="text" style="font-size: x-small; width: 200px;" value="', $value[ $i ], '"></td></tr>';

  $i++;
}

echo '</table>';

?>

Maar nu hebben wel alle inputs dezelfde naam, dus daar heb je vrij weinig aan.
 
hoezo heb ik daar weinig aan?

het is strax de bedoeling om de gegevens te kunnen veranderen en op te slaan in het bestand.
 
Ja, maar als al je velden dezelfde naam hebben kun je alleen de laatste uitlezen.
 
nou, dit is de hele pagina

Code:
<head>

<style type="text/css">
.style1 {
	text-align: right;
}
.style3 {
	border-width: 0px;
}
.style4 {
	background-color: #999999;
	text-decoration: none;
	color: #000000;

}
</style>

</head>


<body style="background-image: url('../../Image/screen.jpg'); background-attachment: fixed">
<form method="POST"action="../func/wijzigenNAW.php" style="width: 571px; height: 156px">
<table style="position: absolute; width: 51%; left: 96px; top: 58px; height: 246px;" >	

<?
if ($_REQUEST['id'] == 1){
$i = 0;
include('../../functions/user.php');
echo "<br><strong>Inloggen op administratie</strong>";
foreach ($lbladmin as $tabel) {
 echo "<tr><td style ='font-size: x-small; width: 172px;'class='style1'>".$tabel."</td>";
 echo "<td><input name='debnr' type='text' style ='font-size: x-small; width: 200px;'value='"
 .$admin[$i]."'></td></tr>";
 $i++;
}
}
if ($_REQUEST['id'] == 2){
$i = 0;
include('../../functions/user.php');
echo "<br><strong>Bedrijfgegevens van de Site</strong>";
foreach ($lblgebruik as $tabel) {
 echo "<tr><td style ='font-size: x-small; width: 172px;'class='style1'>".$tabel."</td>";
 echo "<td><input name='debnr' type='text' style ='font-size: x-small; width: 200px;'value='"
 .$gebruik[$i]."'></td></tr>";
 $i++;
}
}
if ($_REQUEST['id'] == 3){
$i = 0;
echo "<br><strong>Inloggen op je MySQL-database</strong>";
include('../../functions/user.php');
foreach ($lbldbase as $tabel) {
 echo "<tr><td style ='font-size: x-small; width: 172px;'class='style1'>".$tabel."</td>";
 echo "<td><input name='debnr' type='text' style ='font-size: x-small; width: 200px;'value='"
 .$dbase[$i]."'></td></tr>";
 $i++;
}
}
 ?>
	<tr>
		<td style ="font-size: x-small; width: 172px;" class="style1"></td>
		<td><input name="Submit1" type="submit" style ="font-size: x-small" 
		value="Wijzigen"/></td>
	</tr>

</table>
</form>
<div style="position: absolute; left: 98px; top: 35px; width: 349px;">
<table style="width: 100%" class="style3">
	<tr>
		<td class="style4">
		<a target="main" href="adminNAW.php?id=1" class="style4">Logingegevens :</a></td>
		<td class="style4">
		<a target="main" href="adminNAW.php?id=2" class="style4">Bedrijfsgegevens :</a></td>
		<td class="style4">
		<a target="main" href="adminNAW.php?id=3" class="style4">Databasegegevens :</a></td>
	</tr>
</table>
</div>

</body>

</html>

Ik heb alleen het idee dat de code van de if($_REQUEST) korter en simpler kan.

Ik moet nu alleen nog gaan ontdekken hoe ik Fwrite kan gebruiken, de gegevens op de juiste plaats in het bestand wegschrijven.
 
Laatst bewerkt:
Ja, kan wel iets korter ja:

PHP:
$aMessage = array ( 1 => 'Inloggen op administratie', 2 => 'Bedrijfgegevens van de Site', 3 => 'Inloggen op je MySQL-database' );

$aInputs = array ( 1 => 'admin', 2 => 'gebruik', 3 => 'dbase' );

if ( isset ( $_REQUEST[ 'id' ] ) && ctype_digit ( $_REQUEST[ 'id' ] ) ) {

  $i = 0;
  echo '<br><strong>', $aMessage[ $_REQUEST[ 'id' ] ], '</strong>';

  foreach ($lbladmin as $tabel) {
    echo '<tr><td style="font-size: x-small; width: 172px;" class="style1">', $tabel, '</td>';
    echo '<td><input name="debnr" type="text" style="font-size: x-small; width: 200px;" value="', $aInput[ $aInputs [ $_REQUEST[ 'id' ] ] ][ $i ], '"></td></tr>';
   $i++;
  }
}

Dan moet je zorgen dat je voor de values niet drie aparte arrays hebt, maar dat je 1 multidimensionale array gebruikt.

Dus in plaats van:

PHP:
$admin = array ( 'waarde1', 'waarde2', 'waarde3' );
$gebruik = array ( 'waarde1', 'waarde2', 'waarde3' );
$dbase = array ( 'waarde1', 'waarde2', 'waarde3' );

moet je dan:

PHP:
$aInput = array();
$aInput[ 'admin' ] = array ( 'waarde1', 'waarde2', 'waarde3' );
$aInput[ 'gebruik' ] = array ( 'waarde1', 'waarde2', 'waarde3' );
$aInput[ 'dbase' ] = array ( 'waarde1', 'waarde2', 'waarde3' );

En dan zit je nog steeds met het feit dat al je invoervelden dezelfde naam hebben.
 
multidimensionale array:shocked: okey als ik het zo lees,
zie ik de bedoeling en snap ik het ook wel.
Nu alleen nog leren toe te passen.

Maar kan ik niet ><input name="debnr<? echo $i; ?>" type="text doen?

want dan zou ik de waarde van $i kunnen meesturen met de submit URL
en die op de andere pagina weer kunnen gebruiken om de velden samen te voegen.

of bedenk ik me nu een heel raar en stom iets?
 
Ja, dat is een goede oplossing! Zo kun je ze op de volgende pagina wel weer uitlezen.
 
alleen value="', $aInputs[ $aInputs [ $_REQUEST[ 'id' ] ] ][ $i ],

geeft de volgende error

<br /><b>Notice</b>: Undefined index: $admin in <b>F:\UsbWebserver\Root\admin\forms\adminNAW.php</b> on line <b>36</b><br />

in het tekstveld.

Ik heb al wat zitten te puzzelen. maar ik krijg het er niet uit.

de gegevens in de array heb ik al aan gepast van 'admin' naar '$admin"

en met punten en komma's gespeeld en de eerste $aInputs weggehaald.

maar nix werkt.
 
dit is wat ik nu heb. Ik heb er nog een array bij gezet omdat het 2 verschillende strings zijn

[CODE<head>

<style type="text/css">
.style1 {
text-align: right;
}
.style3 {
border-width: 0px;
}
.style4 {
background-color: #999999;
text-decoration: none;
color: #000000;

}
</style>

</head>


<body style="background-image: url('../../Image/screen.jpg'); background-attachment: fixed">
<form method="POST"action="../func/wijzigenNAW.php?link=<? echo $i; ?>" style="width: 571px; height: 156px">
<table style="position: absolute; width: 51%; left: 96px; top: 58px; height: 246px;" >

<?
$aMessage = array ( 1 => 'Inloggen op administratie',
2 => 'Bedrijfgegevens van de Site',
3 => 'Inloggen op je MySQL-database' );

$aInputs = array ( 1 => '$admin', 2 => '$gebruik', 3 => '$dbase' );
$bInputs = array ( 1 => '$lbladmin', 2 => '$lblgebruik', 3 => '$lbldbase' );
if ( isset ( $_REQUEST[ 'id' ] ) && ctype_digit ( $_REQUEST[ 'id' ] ) ) {

$i = 0;
echo '<br><strong>', $aMessage[ $_REQUEST[ 'id' ] ], '</strong>';
include('../../functions/user.php');
foreach ($bInputs[ $bInputs [ $_REQUEST['id']]] as $tabel) {
echo '<tr><td style="font-size: x-small; width: 172px;" class="style1">', $tabel, '</td>';
echo '<td><input name="debnr" type="text" style="font-size: x-small; width: 200px;" value="',
$aInputs[ $aInputs [ $_REQUEST['id']]][ $i ], '"></td></tr>';
$i++;
}
}

?>
<tr>
<td style ="font-size: x-small; width: 172px;" class="style1"></td>
<td><input name="Submit1" type="submit" style ="font-size: x-small"
value="Wijzigen"/></td>
</tr>

</table>
</form>
<div style="position: absolute; left: 98px; top: 35px; width: 349px;">
<table style="width: 100%" class="style3">
<tr>
<td class="style4">
<a target="main" href="adminNAW.php?id=1" class="style4">Logingegevens :</a></td>
<td class="style4">
<a target="main" href="adminNAW.php?id=2" class="style4">Bedrijfsgegevens :</a></td>
<td class="style4">
<a target="main" href="adminNAW.php?id=3" class="style4">Databasegegevens :</a></td>
</tr>
</table>
</div>

</body>

</html>][/CODE]

ik heb geprobeerd $bInputs[ $bInputs [ $_REQUEST['id']]] met echo. Dat leverd ook een error op.
 
Laatst bewerkt:
Als je het tussen
PHP:
tags zet is het wat beter leesbaar.

Maar je moet van

PHP:
$aInputs = array ( 1 => '$admin', 2 => '$gebruik', 3 => '$dbase' );
$bInputs = array ( 1 => '$lbladmin', 2 => '$lblgebruik', 3 => '$lbldbase' );

PHP:
$aInputs = array ( 1 => 'admin', 2 => 'gebruik', 3 => 'dbase' );

en

PHP:
$bInputs = array ( 1 => 'lbladmin', 2 => 'lblgebruik', 3 => 'lbldbase' );

maken, zoals ik eerst ook aangaf.

Maar de multidimensionale array die ik aagaf moet dan wel aangemaakt worden. Ik begin nu het idee te krijgen, dat je het beter gewoon bij je oorspronkelijke code kunt houden, want zo inefficiënt was die nou ook weer niet.
 
Die multidimensionale array moet ik dan wel weer zien te vullen met de gegevens
dit in in mijn user.php maak.
moet ik die multidimensionale array dan daar al aanmaken?

haha ja is wel een complexe leercurve. maar zeker wel heel interessant.
 
PHP:
[<? 
//bedrijfsgegevens
$file = 'data/logfile.dat';
$file2 = 'data/labelfile.dat';
//////////////////////////////////////
// als het bestand logfile niet bestaat maakt hij het aan
if (!file_exists($file)) 
{ 
$fp = fopen($file, 'a', FILE_USE_INCLUDE_PATH); 
fclose($fp);
} 
/////////////////////////////////////
// als het bestand labelfile niet bestaat maakt hij het aan
if (!file_exists($file2)) 
{ 
$fp2 = fopen($file2, 'a', FILE_USE_INCLUDE_PATH); 
fclose($fp2);
} 
/////////////////////////////////////
// strings maken logfile
$regel = explode("\r\n", file_get_contents($file, FILE_USE_INCLUDE_PATH));// gegevens uit file halen

$admin = explode(",",$regel['0']);
$gebruik = explode(",",$regel['1']);
$dbase = explode(",",$regel['2']);
//////////////////////////////////////////
// strings maken labelfile
$regel_label = explode("\r\n", file_get_contents($file2, FILE_USE_INCLUDE_PATH));// gegevens uit file halen

$lbladmin = explode(",",$regel_label ['0']);
$lblgebruik = explode(",",$regel_label ['1']);
$lbldbase = explode(",",$regel_label ['2']);
//////////////////////////////////////////////
?>/PHP]
 
Maak van:

PHP:
$admin = explode(",",$regel['0']);
$gebruik = explode(",",$regel['1']);
$dbase = explode(",",$regel['2']);

eens:

PHP:
$aInput[ 'admin' ] = explode(",",$regel['0']);
$aInput[ 'gebruik' ] = explode(",",$regel['1']);
$aInput[ 'dbase' ] = explode(",",$regel['2']);

en van

PHP:
$bInput[ 'lbladmin' ] = explode(",",$regel_label ['0']);
$bInput[ 'lblgebruik' ] = explode(",",$regel_label ['1']);
$bInput[ 'lbldbase' ] = explode(",",$regel_label ['2']);

En van

PHP:
$aInputs[ $aInputs [ $_REQUEST['id']]][ $i ]

maak je

PHP:
$aInput[ $aInputs[ $_REQUEST[ 'id' ] ] ][ $i ], '"></td></tr>';

Enne, je moet je PHP code hier wel afsluiten met [/PHP], niet /PHP]
 
Ja, de tags. Ik zie het, kwestie van te snel willen plakken!!!!
Zal er meer op letten. staat en lees veel netter!!!

Maar YES hoera het werkt en ik snap nu hoe het werkt!!!

zo kan ik aan de gang gaan met de fwrite

Poeh ben vandaag weer een heel stuk wijzer geworden!!!! THNX
 
No problem, het is altijd mooi als je het toch net even wat efficienter kunt maken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan