Foto's koppelen aan rest van invoer.

Status
Niet open voor verdere reacties.
Het formulier om een reis toe te voegen is Case 2.

In case 1 haalt hij de reeds gemaakte reizen op uit de database, en dan kun je ze(voorheen, werkt nu dus niet) bewerken, dan moet je dus weer op een formulier tercht komen waar je de reis wijzigen kunt. of verwijderen.

Edit, 1 en 2 omgewisseld...

Dus idd bij Case 2 moet er alleen een formulier komen, dat werkt overigens nu, maar Case 1 kan ik dus nog niets mee.
 
Laatst bewerkt:
Ja ik weet niet precies waar het fout gaat zo. Misschien moet je heel je case1 even uit-commenten, en een simpele query uitvoeren en iets printen. Dan kun je ook zien of je databaseconnectie wel goed gaat. Mocht dat zo zijn, dan ligt daar iig het probleem niet. Het zou kunnen dat er iets met je GET action fout gaat, maar weet het niet precies. Heb je geen error regel(s)?
 
Simpele query gaat goed, sowieso wel, want hij laat reeds ingevoerde reizen ook zien.
Nee dat vind ik ook raar dat ik geen errors te zien krijg, dan wordt ik iig in de goede richting gewezen, maar helemaal geen error.

de link naar de action is goed, maar eenmaal op geklikt, gaat ie naar een lege pagina toe...

EDIT: in CASE 1 kan ik wel verwijderen, maar bewerken gaat dan weer niet..
 
Laatst bewerkt:
En de lege pagina, welke pagina wordt aangeroepen? Je hebt nu het bewerken in dezelfde pagina staan als de reizen oproepen? Wat ik zou doen is, een aparte pagina maken met bewerken en daar alle velden in zetten, plus de query.
Case1 = dus het tonen van de reizen
Case2 = dus het aanpassen van de reizen
(ik heb zelf een aparte case om bijvoorbeeld via checkboxes de status te veranderen in actief of inactief, als ook het verwijderen, dan nog een aparte case met verwijderen via button en status via button)
Als je dit allemaal apart doet, kun je waarschijnlijk een case voor meerdere dingen gebruiken (dus niet alleen reizen, maar ook locaties?).
Je moet namelijk even vooruit denken. Als je later hetzelfde wilt gaan gebruiken, en je denkt letterlijk aan CTRL +C en CTRL +V, dan ben je verkeerd bezig.

Als er nog iets is, leg even duidelijk je probleem uit en wat er precies gebeurt. Zo kan ik ook een beetje door je code kijken. Ik ben namelijk zelf niet al te ver met hele moeilijke dingen in PHP, ben ook nog lerende ;)
 
Laatst bewerkt:
De pagina die wordt aangeroepen is action 5;

PHP:
	} elseif ($_GET['action'] == 5) {
		// Update 
		$sql = "UPDATE reizen_aanbod SET titel='".$_POST['titel']."', prijs='".$testo."' WHERE id='".$_POST['xid']."'";
		$result = $modx->db->query($sql);
		echo $lang_newsletter_edit_update;

Ik wilde inderdaad ook eens even kijken om een aparte pagina voor het bewerken te maken, maar ik weet niet goed hoe..

CTRL-V en CTRL-C zijn niet mn bedoeling, ik wil graag dit goed opzetten, om later meermaals te kunnen gebruiken, en dit is mn eerste projectje van dit kaliber, ook ik ben beginnend lerend...
 
$lang_newsletter_edit_update weet niet wat deze precies is..? Anyways, je spreekt hier over een query die nodig is om een feest toe te voegen, right? Als dat zo is, dan klopt de query natuurlijk niet zie ik nu. Je gebruikt namelijk UPDATE, en dat is enkel voor het veranderen van waardes (dus als je een reis wil bewerken). Je zal INSERT INTO moeten gebruiken!

("INSERT INTO tabelnaam (id, titel, prijs)
VALUES ('', '$titel', '$prijs' )");

Betreffende je aanpassen;
Je hebt dan hetzelfde formulier als toevoegen. Echter value wordt dan niet bijv "" maar "<?php echo $titel; ?>". Bij het schrijven naar de database wordt het dan wél UPDATE.
 
Die query heb je inderdaad gelijk, ik zie net dat niet degene was die ik bedoelde wat voorheen gewerkt heeft.

Als ik in de defaultcase zit, waar hij dus gebieden laat zien, en je die evt kunt bewerken en/of verwijderen, ik heb niets aan die actions veranderd , alleen wat gestructureerd, en werk dus met includes naar de cases toe.

Als ik hier naar de actions kijk werk ik wel met een update, maar moet volgens mij zo kunnen toch?
Echter kan ik hier niet bewerken of verwijderen, en kom ik direct op de lege pagina, maar mijn browser stuurt als ik op verwijderen klik wel een alert of ik reis reis1(bijv. wil verwijderen.

Actions:
PHP:
				echo $list ;
				$list1 .= '<tr>';
				$list1 .= '<table style="font-size: 12px;" width="700">';
				$list1 .= '<td><a href="index.php?a=112&id='.$modId.'&action=6">'.$lang_reis_voeg_toe.'</a></td';
				$list1 .= '</tr>';
				$list .= '</table>';
				echo $list1 ; 
			
				
			
		 }elseif  ($_GET['action'] == 2) {
			// 
			$sql = "SELECT * FROM `reizen_gebieden` WHERE id = '".$_GET['nid']."'";
			$result = $modx->db->query($sql);
			echo '<div class="content_">
					<p><br />'.$lang_gebieden_bewerk_gebied.'</p>
					<form action="index.php?a=112&id='.$modId.'&action=3&nid='.$_GET['nid'].'" method="post">
					<input type="hidden" name="datum" value="'.mysql_result($result,$i,"datum").'"></input>
					<b>'.$lang_gebieden_gebied.'</b><br /><input type="text" size="50" maxlength="50" name="gebied" value="'.mysql_result($result,$i,"gebied").'"></input><br />
					<input type="submit" value="'.$lang_gebieden_opslaan.'"></input></div>';
		} elseif ($_GET['action'] == 3) {
	
			// Bewerk
			$sql = "UPDATE reizen_gebieden SET gebied='".$_POST['gebied']."'WHERE id='".$_GET['nid']."'";
			$result = $modx->db->query($sql);
			echo $lang_gebieden_veranderd;
				} elseif ($_GET['action'] == 4) {
			// Verwijder
			$sql = "DELETE FROM reizen_gebieden WHERE id='".$_GET['nid']."'";
			$result = $modx->db->query($sql);
			echo $lang_gebieden_verwijderd;
			
			} elseif ($_GET['action'] == 6) {
			// 
			$sql = "SELECT * FROM `reizen_gebieden` WHERE id = '".$_GET['nid']."'";
			$result = $modx->db->query($sql);
			echo '<div class="content_">
					<p><br />'.$lang_gebieden_maak.'</p>
					<form action="index.php?a=112&id='.$modId.'&action=5" method="post">
					<b>'.$lang_gebieden_gebied.'</b><br /><input type="text" size="50" maxlength="50" name="gebied" value="gebied"></input><br />
					<input type="submit" value="'.$lang_gebieden_opslaan.'"></input></div>';
			
			} elseif ($_GET['action'] == 5) {
			//Voeg toe
			$sql = "INSERT INTO reizen_gebieden VALUES('','".$_POST['gebied']."',now())";
			$result = $modx->db->query($sql);
			echo $lang_gebieden_opgeslagen;	
		
				}
}
?>
 
Laatst bewerkt:
Ik zie eerlijk gezegd de fout zo 1,2,3 niet. Klopt de pagina die aangeroepen wordt wel? Welke pagina wordt aangeroepen, wat zie je in de URL staan? Als je de form roept naar zijn eigen pagina, moet je wel zorgen dat de query daar natuurlijk ook instaat. Kan zo even niet zien of het daarin thuishoort, want die cijfers allemaal.. :P (de query lijkt me trouwens gewoon in orde, werkte ook voorheen neem ik aan?)
 
hehe , ja ik snap het ook niet helemaal, ik ga hier nog even mee stoeien(ik ben dan ook zo ingesteld dat het moet en zou werken:P), en tevens wilde ik een aparte bewerk.php maken.
In ieder geval heel veel dank voor je tijd....

Maar hoe maak ik die zo simpel mogelijk?

En is het mogelijk om diezelfde pagina te gebruiken voor het bewerken van gebieden, landen, en de reizen?
 
ik Zat er aan te denken om hier iets mee te doen, maar ik weet niet of het kan?

PHP:
<?php		$sql = "SELECT * FROM `reizen_aanbod` ";
        $result = mysql_query($sql);
         while($disp = mysql_fetch_array($result))
         {
              $list .= '<input type=text value="'.$disp['soort'].'">  '.$disp['soort'].' </input>'; 
         }

			echo $list;
			?>

EDIT: HEb er een else tussengezet, die regelt dat wanneer er niets is ingevoerd, hij dat ook vertelt(compleet nutteloos), maar dan kan ik dus wel bewerken verwijderen en toevoegen:)
 
Laatst bewerkt:
Ten eerste, je hebt zo weer HTML in je PHP.

Ten tweede, iedere input moet een eigen naam hebben, die je laterna gebruikt om dingen te veranderen in je database met de $_POST variabele. Dat gaat zo lastig (zal vast wel een of andere moeilijke manier zijn, maar zou het zelf niet doen!

Ten derde, gebieden, landen & reizen hebben allemaal dezelfde velden in de tabel van de database (dus geen meer of minder velden)? Als bijv. landen en gebieden overeenkomen, kan je deze in 1 .php bestand zetten. Zijn alle anders, dan moet je er dus 3 maken naar mijn mening.

Zelf heb ik mijn spul in een <table> gestopt, dus;
<table>
<form action="blabla">
<tr>
<td>Titel</td>
<td><input type="text" value="<?php echo $titel; ?>" name="titel" /></td>
</tr>
<tr>
<td>Prijs</td>
<td><input type="text" value="<?php echo $prijs; ?>" name="prijs" /> (invullen met eventuele punt dus geen komma)</td>
</tr>
<tr>
</form>
</table>
En dan voorheen natuurlijk met een query de titel en prijs ophalen.
 
Ik ga daar eens even wat voor maken..heb ik later meer aan dan als ik het erbij in prop;)

Hey nog 1 vraagje, misschien weet/zie jij het.

In de backend include ik case 2 en upload.php bij elkaar, alleen de 2 submits zijn gekoppeld aan hetzelfde, dus als ik nu een plaatje opsla, verstuurt ie alles.

Hoe zorg ik ervoor dat die 2 submits apart lopen?

PHP:
switch($_GET['p']) {

	// List Reizen
	case "laatreiszien":
	
	include('includes/case1.php');
	
		
			
	break;
	case "maakreis":
	    // Voeg Reis Toe aan Database
		
	 include('includes/case2.php');
       case "upload"  :
	   include($path.'functies/upload.php');
		
			
			
    break; 
	default:
	 
		include('includes/casedefault.php');	
	  break;
	}
 
Een case bevat informatie, en word afgesloten met een break. Een case in een case is niet mogelijk zover ik weet. Wat je dus wel kan doen is meerdere includes in een case. Ik heb zelf de includes voor foto uploaden gezet net voor het schrijven naar de database. Ik wil namelijk alleen dat het script gerund wordt, wanneer het nodig is. Als je het script niet gebruikt, waarom (al) includen? Als het fout gaat met naamgeving, dan moet je andere namen geven.
Zelf heb ik van de upload een echte functie (function) gemaakt, en roep ik deze gewoon aan. Ik heb dus geen submit nodig.
 
Hmm, ben nu bezig met het form, maar krijg elke de melding :


Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\modx\modx\assets\modules\reizen\includes\bewerk.php on line 4

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\xampp\htdocs\modx\modx\assets\modules\reizen\includes\bewerk.php on line 4.

Heb al geprobeerd, om erboven nog een dbconnect te doen, daar doet hij ook niets mee.

Bewerk.php

PHP:
<?php

$sql = "SELECT * FROM `reizen_aanbod` WHERE id = '".$_GET['nid']."'";
			$result = mysql_query($sql);
	include($modx->config['base_path'].'manager/includes/config.inc.php');
			$titel = mysql_result($result,$i,"titel");
			$prijs = mysql_result($result,$i,"prijs");
			$sterren = mysql_result($result,$i,"sterren");
			$tekst = mysql_result($result,$i,"tekst");
			$aanbieding = mysql_result($result,$i,"aanbieding");
			$soort = mysql_result($result,$i,"soort");
			$accommodatie = mysql_result($result,$i,"accommodatie");
			$gebied = mysql_result($result,$i,"gebied");
	?>		
<table>
<form action="blabla">
<tr>
<td>Titel</td>
<td><input type="text" value="<?php echo $titel; ?>" name="titel" /></td>
</tr>
<tr>
<td>Prijs</td>
<td><input type="text" value="<?php echo $prijs; ?>" name="prijs" /> (invullen met eventuele punt dus geen komma)</td>
</tr>
<tr>
<td>Sterren</td>
<td><input type="text" value="<?php echo $sterren; ?>" name="sterren" /></td>
</tr>
<tr>
<td>Beschrijving</td>
<td><input type="text" value="<?php echo $tekst; ?>" name="tekst" /> (invullen met eventuele punt dus geen komma)</td>
</tr>
<tr>
<td>Aanbieding</td>
<td><input type="text" value="<?php echo $aanbieding; ?>" name="aanbieding" /></td>
</tr>
<tr>
<td>Soort</td>
<td><input type="text" value="<?php echo $soort; ?>" name="soort" /> (invullen met eventuele punt dus geen komma)</td>
</tr>
<tr>
<td>Accommodatie</td>
<td><input type="text" value="<?php echo $accommodatie; ?>" name="accommodatie" /></td>
</tr>
<tr>
<td>Regio</td>
<td><input type="text" value="<?php echo $gebied; ?>" name="gebied" /> (invullen met eventuele punt dus geen komma)</td>
</tr>
<tr>
</table>
<input type="submit" name="submit" value="Bewaar!">
</form>

Edit, laat maar, ik stond naar een compleet verkeerde server te connecten....Nu nog even zien hoe ik verschillende waarden ophaal, want elke link die ik gebruik voor bewerk, laat me hetzelfde record zien:(
 
Laatst bewerkt:
Die opbouw van queries ken ik niet. Doe het zelf op de (oldskool) PHP4 manier.

PHP:
$query="SELECT * FROM reizen_aanbod
		WHERE id = '".$_GET['nid']."' ";
// Query uitvoeren
$result = mysql_query($query) or die(mysql_error());
// Resultaat verwerken, eerst aanmaken standaard eerste rij
while ($record = mysql_fetch_assoc($result)) {
	$titel = $record['titel'];
	$prijs = $record['prijs'];
        etc.
}
 
Dit is de wat nieuwere manier(denk ik moest hier nog achter;)), toch even de jouwe geprobeerd, maar zelfde resultaat.
Maar ik denk dat ik het snap, want met de url stuur ik nu geen id mee, en pakt hij waarschijnlijk gewoon de reis met het id 0.

Nu ben ik niet erg bekend met het meesturen van ID's.(zoals gezegd heb ik dit script omgebouwd tot wat het nu is) en begin een en ander vrij duidelijk te snappen, maar dit snap ik nog niet..

Ik gebruik nu als link
PHP:
$list .= '<td><a href=" http://localhost/modx/modx/assets/modules/reizen/includes/bewerk.php">'.$lang_reis_edit.'</a> | hier de volgende links voor verwijderen
 
Laatst bewerkt:
<a href="<?php echo $_SERVER['PHP_SELF'] . '?p=verwijderen&verwijder=' . $id; ?>">VERWIJDER</a>

p=verwijderen, dus even in de switch toevoegen verwijderen, en ook een nieuw php bestandje.
verwijder='.$id.' hier geef je dus het id mee als GET, die je straks in je query kan uitlezen

nu dus een query DELETE FROM reizen_info WHERE id=$_GET['verwijder'] zetten, in het PHP bestandje wat je onder de case verwijderen hebt geinclude.

Even zelf kijken naar juiste notering en naamgeving.

Wat je zei over meegeven van ID, volgens mij gebeurde dat wel. Je hebt meerdere keren ergens een &id= staan, wat betekend dat je deze kunt ophalen met $_GET. Maar ben even in a rush, dus kan het niet helemaal bekijken nu.
 
Het verwijderen neem ik ook even mee, was nu alleen ff bezig met bewerk.php ;)

Ik ga er eens even mee stoeien, want ik krijg maar 1 resultaat welke reis ik ook aan klik, dezelfde reis wordt ingeladen.

Raar is wel als ik $GET_['nid'] verander naar $GET_['id'], komt er standaard een andre reis tevoorschijn?:shocked:

Dank je voor je tijd en hulp, heb er veel aan:)
 
Nou het id meegevenb lukt, de reis ophalen in de inputs dus ook:)
Nu nog even de POST zien te fixen, nu doet ie bij het aanroepen de query voor het verzenden al....
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan