Hallo,

Ik heb een PHP bestand. Als ik die open, wordt ook de verbinding met de database gemaakt.
Zo heb ik

$query_menu_beheer =
    "SELECT menu_id, menu_sub_van, menu_waarde, menu_tekst, menu_link
    FROM tabel_menu
    ORDER BY menu_sub_van, menu_waarde";

$result_menu_beheer = mysqli_query($connect, $query_menu_beheer);


En dat werkt.
Maar nu ga ik in dat bestand verder en gebruik ik ook Javascript.
In een HTML-FORM heb ik twee BUTTONs


<button onclick="Verwijderen()" id="Button_Delete" type="Submit" value="Delete" class="button_delete" alt="verwijderen"></button>																<button onclick="Opslaan()" id="Button_Save" type="submit" value="Submit" class="button_save" alt="opslaan"></button>



De aanroep werkt. Zo open ik de volgende Javascript functies:


// Er is op de verwijder-knop geklikt 
function Verwijderen()
{
	alert('Verwijderen');
	// formulieren en knoppen aan of uit zetten
	$('#Button_Add').show(); // toevoegknop tonen
	$('#Add_Form').hide(); // toevoeg formulier verbergen
};	
function Opslaan()
{
	var j_connect = $connect;
	alert(j_connect);
	if ( $('#fidnr').val().length === 0 )
        {
		alert('nieuwe opslaan');
	}
	else
	{
		alert('bestaande opslaan: id = ' + $('#fidnr').val());
	}
	// formulieren en knoppen tonen of verbergen
	$('#Button_Add').show(); // toevoegknop tonen
	$('#Add_Form').hide(); // toevoeg formulier verbergen
};



En in deze aansturing van de knoppen wil ik een record verwijderen, muteren of toevoegen. De SQL code begrijp ik wel.
Kan ik $connect uit PHP over nemen? Of is dat misschien helemaal niet nodig.
Hoe kan ik naar mijn MYSQL database schrijven?

Alvast bedankt voor de assistentie.
Je zou alles standaard kunnen verbergen met CSS.

Dat zou wel inhouden dat het weinig doet zonder JavaScript. Aan de andere kant, bij deze opzet is het gebruik van JavaScript onvermijdelijk, dus wat dat betreft maakt het niet zoveel uit.
Wat gaaf. Het werkt allemaal.

BEDANKT

Ik heb inderdaad de "Submit" in "Button" veranderd.
En bij "id = Add_Form" ook een class aangeroepen die in de CSS de regel verbergt.

Helemaal top. Bedankt weer voor deze service, uitleg en tips.
Deze situatie wil ik nu gaan kopiëren naar andere tabellen, maar vraag me nu af of ik wel alle velden moet meenemen.
Ik heb nu deze code staan


			// Er is een regel aangeklikt
			function SelecteerRegel( x, j_idnr, j_waarde, j_subvan, j_tekst, j_link )
			{ 
				// formulieren en knoppen tonen of verbergen
				$(x).siblings().show(); // alle regels tonen
				$(x).hide(); // geselecteerde regel verbergen
				$('#Button_Add').hide(); // toevoegknop verbergen
				$('#Add_Form').show(); // toevoeg formulier tonen
				$('#Button_Delete_Verzoek').show(); // verwijderknop tonen

				// velden moeten gevuld worden
				$('#fidnr').val(j_idnr);
				$('#fwaarde').val(j_waarde);
				$('#fsubvan').val(j_subvan);
				$('#ftekst').val(j_tekst);
				$('#flink').val(j_link);	
			};


Ik roep die aan vanuit de ondersstaande code.


<?php
//menu_tabel_tonen.php
$query_menu_beheer =
	"SELECT menu_id, menu_sub_van, menu_waarde, menu_tekst, menu_link
	FROM tabel_menu
	ORDER BY menu_sub_van, menu_waarde";

$result_menu_beheer = mysqli_query($connect, $query_menu_beheer);

// *** regels vullen ***
$i = 0;
foreach($result_menu_beheer as $record_menu_beheer)
{ 
	$i = $i + 1;
	// *** regel maken ***
	
	echo 
		"<tr id='regel' class='clickregel' onclick='SelecteerRegel( this, " . $record_menu_beheer['menu_id'] . ", " 
		. $record_menu_beheer['menu_waarde'] . ", " 
		. $record_menu_beheer['menu_sub_van'] .", \"" 
		. $record_menu_beheer['menu_tekst'] . "\", \"" 
		. $record_menu_beheer['menu_link'] . "\" )'>
		<td align = right>". $record_menu_beheer['menu_waarde'] . "</td>
		<td align = right>" . $record_menu_beheer['menu_sub_van'] . "</td>
		<td align = left>" . $record_menu_beheer['menu_tekst'] . "</td>
		<td align = left>" . $record_menu_beheer['menu_link'] . "</td>
		</tr>";
	// *** einde regel maken ***

}
// *** einde regels vullen ***
?>


Maar eigenlijk zou ik het mooi vinden als ik alleen de id mee neem, en dan met een select query het formulier open waar die alvast ingevuld is.
Ik wil daar het zelfde formulier voor gebruiken als het toevoegen, maar bij het toevoegen is het formulier leeg.
Persoonlijke smaak: veel te veel "mixing concerns". Ogenschijnlijk heeft dit niets met het beantwoorden van jouw oorspronkelijke vraag te maken, maar daar kom je als je op de ingeslagen weg verder gaat nog wel achter. Namelijk op het moment dat je onderhoud pleegt aan je code en bepaalde zaken "overal" moet wijzigen in plaats van op één plek. Hier heeft Ariën ook al op gezinspeeld.

Terugkerend naar beantwoording oorspronkelijke vraag. Je wilt JS gebruiken voor database-mutaties. Een legitiem argument hiervoor zou kunnen zijn page-(re)loads beperken (SPA?). Een mooie oplossing, zoals reeds aangereikt, AJAX.
Nick Vledder, bedankt voor je antwoord. Iedere tip is welkom.
Bedoel je met "mixing concerns" dat ik veel soorten code door elkaar gooi? Ik doe al mijn best om het gescheiden te houden.
PHP boven aan en Javascript in de HEAD van HTML en dan de rest van HTML. Maar ik zie ook veel voorbeelden dat Javascript onderaan staat. Ik begin langzaam meer te begrijpen van Jquery en nu probeer ik ook ajax te doorgronden. Maar ik kan niet zeggen dat ik het op dit moment makkelijk vind. Vandaar ook dat ik het een en ander uiteen zet. In de hoop dat iemand weer een goude tip voor me heeft, waardoor ik het weer beter ga begrijpen.
@Frits
Gouden tip: begin 'ns met routing via index.php en je scripts te ordenen. Je kan afkijken bij PHP microframeworks of vanuit een paradigm (bijvoorbeeld MVC) je scripts onderbrengen in verschillende folders en zelf iets uitwerken.

Persoonlijk vind ik het prettig models, controllers, views, classes en templates in aparte folders onder te brengen. Tevens heb ik een folder met assets, waarin onder andere js, css en image-bestanden zijn ondergebracht (in dito folders).

Gebruik je bijvoorbeeld zelf al een template-engine?

Reageren