Hoe variabelnamen uit database toewijzen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 4 volgende »

- Ariën  -
Beheerder

- Ariën -

01/09/2023 13:59:58
Quote Anchor link
Hier werkt het gewoon. Er is niks mis met de str_replace.
Enige wat ik kan bedenken is dat je het verkeerde paginanummer hebt.

Persoonlijk zou ik goede namen gebruiken, die aanduiden waar het bij hoort, zoals 'contact' ofzo.
Gewijzigd op 01/09/2023 14:00:10 door - Ariën -
 
PHP hulp

PHP hulp

20/06/2024 14:42:45
 
Paul Weiss

Paul Weiss

01/09/2023 14:03:11
Quote Anchor link
het werkt bij mij ook. alleen niet uitvinden hoe ik het dus moet opslaan. want zoals ik al zei de pagina waar de html pagina in komt te staan is variabel.
 
- SanThe -

- SanThe -

01/09/2023 14:03:57
Quote Anchor link
- Ariën - op 01/09/2023 13:59:58:
Persoonlijk zou ik goede namen gebruiken, die aanduiden waar het bij hoort, zoals 'contact' ofzo.


Inderdaad
 
- Ariën  -
Beheerder

- Ariën -

01/09/2023 14:06:33
Quote Anchor link
Dan moet je een UPDATE-query uitvoeren, na bijv. een submit actie, of een actie als je jouw focus verliest op je textarea via AJAX (JavaScript) uitvoeren.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
UPDATE content SET inhoud='nieuwe invoer' WHERE pagina = 'contact'
Gewijzigd op 01/09/2023 14:07:10 door - Ariën -
 
Paul Weiss

Paul Weiss

01/09/2023 14:37:29
Quote Anchor link
Hoe arien. ben het allemaal aan het uitpluizen. laat ik even een stap terugdoen. als ik nu de php uitvoer krijg ik de resultaten te zien, die ik vervolgens doormiddel van contenteditable ook weer kan veranderen. maar hoe kan ik nu de nieuwe inhoud dan uberhaupt weer opslaan in een php variable die ik vervolgens weer via update kan opslaan in de database. dus even uigaande van 1 specifieke placeholder en bijbehorende inhoud.

iets van onderstaande? geen idee!!

$inhoud = inhoud van placeholder[rij1titel1; ??



Alvast bedankt.
Gewijzigd op 01/09/2023 14:42:41 door Paul Weiss
 
- Ariën  -
Beheerder

- Ariën -

01/09/2023 14:48:35
Quote Anchor link
Ben je al bekend met het afhandelen van formulieren?
Ik heb nog nooit met contenteditable gewerkt, maar ik lees dat dit niet direct als een formulier-element gezien wordt. Je zult een verborgen lege formulierelement input type="hidden" moeten aanmaken met bijv. de naam hiddenTextarea, en die de waarde geven van je contenteditable (bijv. myContentEditable). De copyContent() functie wordt aangeroepen bij het verzenden van je formulier, en vanaf dan heb je de invoer in $_POST['hiddenTextarea'] staan.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
function copyContent () {
    document.getElementById("hiddenTextarea").value =  
        document.getElementById("myContentEditable").innerHTML;
    return true;
}


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<form action='whatever' onsubmit='return copyContent()'>
De rest van je formulier met een submitknop en e.v.t andere elementen naar eigen wens.
</form>


Je kan natuurlijk ook i.p.v. contenteditable een off-the-shelf product kiezen als TinyMCE of CKeditor.
Gewijzigd op 01/09/2023 14:50:21 door - Ariën -
 
Paul Weiss

Paul Weiss

01/09/2023 14:56:18
Quote Anchor link
bedankt voor de info en tips. formulieren ken ik zeker. contenteditable is geen formulier element inderdaad.
Ik ga er verder mee aan de slag.
 
- Ariën  -
Beheerder

- Ariën -

01/09/2023 14:56:40
Quote Anchor link
TinyMCE of CKeditor zou misschien makkelijker zijn, maar kies wat je zelf wilt.
Gewijzigd op 01/09/2023 14:57:05 door - Ariën -
 
Paul Weiss

Paul Weiss

01/09/2023 15:08:22
Quote Anchor link
ik moet daar echt gaan induiken. wil het voor mij zelf op dit moment ook niet te ingewikkeld maken.
Maar even terugkomende op de update.

Maar wat betreft het updaten van de inhoud van een placeholder zou ik dus eerst de inhoud via getelementbyid moeten koppelen en vervolgens via ajax doorsturen naar een php bestand waar ik vervolgenss via update deze wel kan opslaan in de database. Dat heb ik in het verleden ook al gedaan en ben ik redelijk bekend mee. Maar dan moet ik wel de id's weten. en daar ligt het probleem nu juist. deze varieren ook en zijn allemaal uniek. dan zou hiervoor ook weer een soort query of zo moeten komen. Is vrij complex merk ik.

Toevoeging op 01/09/2023 15:11:20:

Ik kan natuurlijk ook voor elk html blok afzonderlijk een save button plaatsen met bijbehorende form etc.
Maar als ik dan in de pagina meerdere wijzingen zou aanbrengen in verschillende blokken dan zou ik op elke save button moeten klikken. dat is ook geen optie.
Gewijzigd op 01/09/2023 15:09:47 door Paul Weiss
 
- Ariën  -
Beheerder

- Ariën -

01/09/2023 15:19:27
Quote Anchor link
Met AJAX moeten is een groot woord. AJAX is altijd een middel en niet een doel.
Als je dit gewoon als een normale hand-aangeklikte formulier request wilt doen, dan kan dat ook. Met AJAX maak je het wel makkelijker in gebruik doordat de request op de achtergrond plaatsvindt (a-synchroon).
 
- SanThe -

- SanThe -

01/09/2023 16:05:30
Quote Anchor link
- Ariën - op 01/09/2023 14:48:35:
Je zult een verborgen lege formulierelement input type="hidden" moeten aanmaken met bijv. de naam hiddenTextarea, en die de waarde geven van je contenteditable.


Heel simpel met:
input type="hidden" name="hiddenTextarea" id="hiddenTextarea"
In de editable div onchange="document.getElementById("hiddenTextarea").value = this.innerHTML;"

Dat kan je met alle editable velden doen en dan heb je slechts 1 submitknop nodig.
Gewijzigd op 01/09/2023 16:08:35 door - SanThe -
 
Paul Weiss

Paul Weiss

01/09/2023 17:21:03
Quote Anchor link
he san. bedankt
 
Evert Bennekom

Evert Bennekom

01/09/2023 19:28:50
Quote Anchor link
- Ariën - op 01/09/2023 15:19:27:
Met AJAX maak je het wel makkelijker in gebruik doordat de request op de achtergrond plaatsvindt (a-synchroon).


A-synchroon met wat precies?
 
- Ariën  -
Beheerder

- Ariën -

01/09/2023 19:31:27
 
Paul Weiss

Paul Weiss

01/09/2023 22:34:44
Quote Anchor link
Bedankt voor alle hulp en toegestuurde links. ziet er allemaal uit zoals ik het graag zou willen. Maar uiteindelijk zal ik alles van het formuier moeten doorsturen naar een php bestand die de afhandeling doet. nu ben ik wel bekend met formulieren en php afhandeling. Maar als ik niet weet wat er vanuit het formulier verstuurd wordt weet ik toch ook niet welke data te verwerken? Zoals gezegd varieert de naam van de placeholder dat kan rij1titel1 zijn maar dus ook rij6titel2 en rij9titel1 of rij3tekst1 etc etc..
Nevenstaande link met dank aan arien ziet er wel uit met wat ik wil bereiken:
https://www.geeksforgeeks.org/what-is-an-asynchronous-request-in-ajax/

Maar heb geen idee hoe ik dit precies kan toepassen voor mijn doel.
Wellicht zie ik wel zaken over het hoofd en/of begrijp de oplossingen niet helemaal.Ik zal er nog eens dieper induiken en proberen het te begrijpen.
 
- Ariën  -
Beheerder

- Ariën -

01/09/2023 23:09:38
Quote Anchor link
Met welke reden wil je op een pagina losse elementen hebben? Een hele pagina is toch beter? Anders moet je veel hardcoded gaan benoemen, lijkt me.
 
Paul Weiss

Paul Weiss

02/09/2023 09:20:44
Quote Anchor link
Hoi Arien. Dat heeft ermee te maken dat bij het bouwen van een pagina uit vele verschillende elementen kan worden gekozen. Zo kan ik een tekstblok kiezen, een heroheader, een headermenu, fotogallerij, up selling units etc. etc.. zo heb ik iets van 100 verschillende elementen. elk element dat in de pagina body wordt geplaatst krijgt een uniek rijnummer.
Maar vannochtend had ik de oplossing.
In de onderstaande tabel kan ik gewoon een extra kolom toevoegen met het desbetreffende rijnummer. Zo kan ik gewoon meerdere titel1 , titel2, tekstblok1 etc..hebben Maar ze hebben ieder hun eigen unieke rijnummer. zie de onderstaande tabel. soms is het simpeler dan het is.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
id   placeholder   rij.   inhoud
1    titel1         1     hier een lap tekst
2    titel2         1     Dit is de titel
3.   tekstblok1.    1    tekst voor een tekstblok1
4.   buttontekst1.  1    button tekst
1    titel1         2    hier een lap tekst
2    titel2         2     Dit is de titel
3.   tekstblok1.    2    tekst voor een tekstblok1
4.   buttontekst1.  2    button tekst


Vervolgens kan ik per blok een update laten uitvoeren die verwijst naar het juiste rijnummer
alles updates kan ik uiteraard tegelijk dan laten oproepen middels 1 actie button.
Gewijzigd op 02/09/2023 09:27:46 door Paul Weiss
 
- Ariën  -
Beheerder

- Ariën -

02/09/2023 09:30:32
Quote Anchor link
Ik zit zelf ook met dit idee te worstelen, en ik moet het nog eens goed uitwerken.

Maar voor het nieuws op mijn site wil ik redactioneel ook losse widgets hebben om de pagina samen te stellen. Een poll erbij, of een gestylde blockquote, of een Youtube video of Tweet/X embedden.

Ik denk dat ik CKeditor wel zover kan krijgen. Misschien ook iets voor jou om over na te denken. Want waarom zou je de teksten los willen opslaan, en niet de hele pagina, met placeholders erin?
 
Paul Weiss

Paul Weiss

02/09/2023 09:43:21
Quote Anchor link
he arien. Op dit moment heb ik al een werkend systeem dat de hele body sectie opslaat. Dat is dus inc. styling en teksten etc.. dat gebeurd via de inner.html functie. enige minpunt hieraan is dat je dus via de inspector in de code zou kunnen rommelen. als ik alle teksten, links, afbeeldingen, kleur van tekst en buttons etc.. apart opsla via placeholders dan maakt het niet uit of men in de code rommelt. zie onderaan een voorbeeld van een herounit.

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
<div style="background-image: url(images/5-herosimpel/5-herosimpel.jpg)" alt="" title="" class="small-hero-bg-img fullsize-hero">
<div class="small-hero-text">
<br>
<h1 class="heading-medium font-white">Hier jouw titel</h1>
<h2 class="heading-small font-darkgrey">Hier jouw subtitel - hero 5 fullsize</h2>
<div class="container-flexbox-2-4">
<div class="box-flexbox-2-4">
 <div class="button-boxpulse">
 <a href="#" class="btn-pulse btn-pulse-white btn-pulse-animate" onclick="close_window();return false;">Ga Terug</a>
</div>
</div>
<div class="box-flexbox-2-4">
 <div class="button-container">
 <a href="#" class="button-slidein">Verder</a>
  </div>
    </div>
    </div>
 </div>
  
</div>




Toevoeging op 02/09/2023 09:43:23:

he arien. Op dit moment heb ik al een werkend systeem dat de hele body sectie opslaat. Dat is dus inc. styling en teksten etc.. dat gebeurd via de inner.html functie. enige minpunt hieraan is dat je dus via de inspector in de code zou kunnen rommelen. als ik alle teksten, links, afbeeldingen, kleur van tekst en buttons etc.. apart opsla via placeholders dan maakt het niet uit of men in de code rommelt. zie onderaan een voorbeeld van een herounit.

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
<div style="background-image: url(images/5-herosimpel/5-herosimpel.jpg)" alt="" title="" class="small-hero-bg-img fullsize-hero">
<div class="small-hero-text">
<br>
<h1 class="heading-medium font-white">Hier jouw titel</h1>
<h2 class="heading-small font-darkgrey">Hier jouw subtitel - hero 5 fullsize</h2>
<div class="container-flexbox-2-4">
<div class="box-flexbox-2-4">
 <div class="button-boxpulse">
 <a href="#" class="btn-pulse btn-pulse-white btn-pulse-animate" onclick="close_window();return false;">Ga Terug</a>
</div>
</div>
<div class="box-flexbox-2-4">
 <div class="button-container">
 <a href="#" class="button-slidein">Verder</a>
  </div>
    </div>
    </div>
 </div>
  
</div>




Toevoeging op 02/09/2023 10:00:35:

In elke tag en/of background image path, styling komt een placeholder te staan dan.
Uiteindelijk kan ik ook classes toevoegen. Maar zover ben ik nog helemaal niet
Gewijzigd op 02/09/2023 10:02:07 door Paul Weiss
 
- Ariën  -
Beheerder

- Ariën -

02/09/2023 10:06:52
Quote Anchor link
Kan je mij en de andere eens vertellen wat jij nou het minpunt vindt, van dat iemand in de Inspector aan de HTML rommelt?
 

Pagina: « vorige 1 2 3 4 volgende »



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.