PHP SELF

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ton

Ton

02/11/2007 21:38:00
Quote Anchor link
Ik denk dat hier wel vaker vragen over gesteld zijn echter na 5 uur googelen en zoeken plaats ik hem toch maar hier.

In mijn form worden namen gewijzigd. na deze wijziging is het de bedoeling dat ik in dezelfde pagina de reeds getoonde lijst krijg maar nu met gewijzigde namen.

Tot mijn grote ergenis krijg ik de pagina wel opnieuw maar met daarin nog steeds de oude waardes..

met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER['PHP_SELF']; ?>

krijg ik een lege pagina terug
doe ik action="" in mijn form aanroep dan werkt alles goed maar krijg ik de pagina terug met oude waarden.

De update moet plaatsvinden nadat ik de volgende code uitvoer :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
if($Wijzigen){
for($a=0;$a<$count;$a++){
$sql1="UPDATE ritten SET Klant='$Klant[$a]' WHERE ritID='$ritID[$a]'";
$result1=mysql_query($sql1) or trigger_error(mysql_error());;
}
[
/code]
 
PHP hulp

PHP hulp

25/04/2024 19:50:16
 
- -

- -

02/11/2007 21:44:00
Quote Anchor link
Waarschijnlijk staat de UPDATE-query na de SELECT-query in je script.
 
PHP Newbie

PHP Newbie

03/11/2007 00:16:00
Quote Anchor link
Begin even met alles netjes neer te zetten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
if($Wijzigen)
{

    for($a=0; $a<$count; $a++)
    {

        $sql1 = "UPDATE
                    ritten
                SET
                    Klant='"
.$Klant[$a]."'
                WHERE
                    ritID='"
.$ritID[$a]."'";

        $result1 = mysql_query($sql1) or trigger_error(mysql_error());
    }
}

?>


Daarnaast, wat doe je als een query mislukt? Je wilt bijvoorbeeld de nummers 1 t/m 10 updaten, maar de query bij het updaten van 3 is gefaald?

Om even naar je probleem te gaan. Probeer na een succesvolle update eens een header naar de huidge pagina te doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    header('Location: '.$_SERVER['PHP_SELF']);
?>
 
Ton

Ton

03/11/2007 02:18:00
Quote Anchor link
Als de Update gefaalt heeft kijg ik toch gewoon een error melding ?
Echter dat is in deze code niet het probleem.

Ook na
header('Location: '.$_SERVER['PHP_SELF']);

wordt de getoonde data niet vernieuwd. Ik krijg dus nog steeds de oude info te zien. Dit ondanks dat de waarden in de tabel zijn gewijzigd.
 
Ton

Ton

03/11/2007 23:57:00
Quote Anchor link
Na veel zoeken lijkt het erop dat het niet mogelijk is met een form in dezefde pagina te blijven en de data up to date te krijgen met multiple updates.

Zodra ik de if(submit) update voor de select zet krijg ik een foutmelding.

Ik blijf waardes zien die ik voor het submitten had staan, dit terwijl ze in de database wel degelijk veranderd zijn.

Ook PHPSELF lijkt niet te werken omdat ik de pagina reeds open met geselecteerde waardes uit een voorgaand formulier ($Costcenter selectie)

kijk svp even niet naar een onnette indeling daar ik de code inmiddels al een keer of 100 veranderd heb in de hoop een oplossing te vinden. Ben namelijk al circa een week met dit probleem aan het stoeien.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<html>
<head>
// hier staat opmaak code welke ik vanwege de lengte heb weggelaten
<?
include("db.php");
?>

</head>
<body bgcolor="white">
<div align="center">
<?
ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
for($i=0; $i<sizeof($_GET['checkbox']); $i++)
{

$Costcenternr = $_GET['checkbox'][$i];

mysql_select_db($dbName) or die("Unable to select database $dbName");
$query = "SELECT ritID, Datum, DATE_FORMAT(Datum,'%d-%m-%Y') as ritdatum, DATE_FORMAT(Datum,'%m') AS maand, Start, Eind, Bedrag, Klant, Contant, Costcenter, Factuurnr FROM ritten WHERE Costcenter = '$Costcenternr' AND Factuurnr IS NULL ORDER by Datum";
$result = mysql_query($query) or trigger_error(mysql_error());
$count=mysql_num_rows($result);
?>

<div align="center">
<br>
<form name="updateform" method="post" action="">
<table class="style13">
    <tr class="style13">
    
<td colspan="5" align="center" class="style13">Costcenter = <? echo $Costcenternr ;?> </td>
</tr><tr class="style13">
      <th width="70" class="style13">Datum</th>
      <th width="163" class="style13">Start</th>
      <th width="163" class="style13">Eind</th>
      <th width="163" class="style13">Klant</th>
      </tr><tr>
<?php
while($rows=mysql_fetch_array($result)){
?>


<input name="ritID[]" type="hidden" id="ritID" value="<? echo $rows['ritID']; ?>">
<td class="style13" width="70"><? echo $rows['ritdatum']; ?></td>
<td class="style13" width="163"><? echo $rows['Start']; ?></td>
<td class="style13" width="163"><? echo $rows['Eind']; ?></td>
<td class="style13" width="163"><input name="Klant[]" type="text" id="Klant" value="<? echo $rows['Klant']; ?>"></td>
</tr>


<?php
}
}

?>

<tr>
<td colspan="7" align="center" bgcolor="#FFFFFF"><input name="submit" type="submit" value="Verwerk"></td>
</tr>
<?



?>

</table>
</form>
<?
if($submit){
for($a=0;$a<$count;$a++){
$sql1="UPDATE $tbl_name SET Klant='$Klant[$a]' WHERE ritID='$ritID[$a]'";
$result1=mysql_query($sql1);
}


?>

</div>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Ton
 
M Ypma

M Ypma

04/11/2007 00:24:00
Quote Anchor link
@ton

zoals eerder vermeld doe je pas een update na je select query...
je moet je update query even naar boven verplaatsen
 
Ton

Ton

04/11/2007 10:39:00
Quote Anchor link
Michel je had helemaal gelijk alleen heb ik de update aangepast want zoals ik hem eerst had staan werkte hij niet.

Nu roep ik deze form aan met een multiselectbox zoals je bovenaan kun zien. Is het mogelijk om de $Costcenters array nu mee te nemen naar een volgend bestand ?

Zoals je waarschijnlijk al begrijpt is het de bedoeling diverse costcenters te selecteren, dan te controleren of alle gegevens (namen) juist zijn en deze eventueel aan te passen en vervolgens een rekening aan te maken.

Onderaan het formulier komt nu namelijk nog een 2e submit (nieuwe form) die naar een ander document (verwerk.php) moet gaan.
Het gaat daarbij om de costcenters die ik in het formulier opriep met

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
for($i=0; $i<sizeof($_GET['checkbox']); $i++)
{
$Costcenternr = $_GET['checkbox'][$i];
 
Ton

Ton

04/11/2007 21:41:00
Quote Anchor link
Ik heb het inmiddels zelf helemaal aan de praat gekregen, in elk geval bedankt voor de hulp, deze heeft me wel een heel eind geholpen !!

Ton
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.