ajax werkt niet op deze manier

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Paul Weiss

Paul Weiss

09/09/2023 15:08:56
Quote Anchor link
Hallo. Ik heb onderstaande code. echter ajax wordt zo niet uitgevoerd. als ik ajax in een click function plaats waarbij deze met een klik op een button wordt opgeroepen werkt het wel. heeft iemand een idee waatom dit zo niet werkt?

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
<html>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<div class="form">
<section id="content">
<h1 id="rij-1">content hier</h1>
<p>voorbeeld tekst</p>
<h1 id="rij-2">Hier nog meer content</h1>
<p>nog meer voorbeeld tekst</p>
</section>
</div>




<script>


content = document.getElementById('content');
var code = content.innerHTML;


alert("onderstaande de content:");
alert(code);
$paginanaam = "pagina1";

                    
$.ajax({
url: 'save-content/save-content.php',
type: 'post',
                    
data: {code:$code,paginanaam:$paginanaam},
datatype: 'html',
success: function(rsp){
location.reload();
    alert("hwlllo");                                    
}

});


</script>

</body>
</html>


Onderstaande de php (save-content.php) die door ajax wordt opgeroepen en die vervolgens de content moet opslaan in een bestand
zoals gezegd onderstaande php werkt gewoon als deze wordt opgeroepen door ajax die op zijn beurt pas wordt geactiveerd via een click funtie, maar zonder dus niet blijkbaar!!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$paginanaam
= trim( $_REQUEST['paginanaam'] );
$code = $conn->real_escape_string($_REQUEST['code'] );
$myFile = "import-content.php"; // or .php  
$fh = fopen($myFile, 'w'); // or die("error");  
fwrite($fh, $code);  
fclose($fh);      
?>
Gewijzigd op 09/09/2023 15:10:24 door Paul Weiss
 
PHP hulp

PHP hulp

28/04/2024 11:05:50
 
- Ariën  -
Beheerder

- Ariën -

09/09/2023 17:18:04
Quote Anchor link
Lijn 26 is PHP. Dat klopt niet.
 
Paul Weiss

Paul Weiss

09/09/2023 17:23:26
Quote Anchor link
die had ik inderdaad al gezien en aangepast. echter werkt nog steeds niet. de ajax wordt niet uitgevoerd. begrijp er niets van.
 
- Ariën  -
Beheerder

- Ariën -

09/09/2023 17:36:47
Quote Anchor link
Wat zegt je browser bij de inspector?
 
Paul Weiss

Paul Weiss

09/09/2023 17:47:13
Quote Anchor link
Geen idee wat je precies bedoeld. je bedoeld de inspector openen en waar zou ik dan op moeten letten? of moet ik iets in javascript toevoegen om dit kunnen zien.

Toevoeging op 09/09/2023 17:49:18:

zie het al. dit staat er:


Uncaught ReferenceError: $code is not defined
at index.php:250:13





Toevoeging op 09/09/2023 18:01:51:

terwijl $code echt wel een waarde heeft. heb deze met alert nog laten weergeven

Toevoeging op 09/09/2023 18:08:01:

deze bedoel ie:

data: {code:$code,paginanaam:$paginanaam},

Toevoeging op 09/09/2023 18:30:10:

ik heb het even in content storage geplaatst. en werkt dan wel!! mhhh. local storage had ik al eerder geprobeerd, maar lukte toen ook niet. gek hoor. ik duik er nog verder in om te achterhalen wat nu precies het probleem is.



Toevoeging op 09/09/2023 18:43:37:

ben er al achter. variable toewijzing gebeurd niet op de juiste manier. ajax is query en deze manier van toewijzen is nodig in query blijkbaar

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$code = content.innerHTML;
$paginanaam = "pagina1";


dus zonder variable ervoor als je deze in ajax wilt toewijzen.

Toevoeging op 09/09/2023 18:44:30:

geen idee wat de logica is waarom het zo moet gebeuren
Gewijzigd op 09/09/2023 18:00:58 door Paul Weiss
 
- Ariën  -
Beheerder

- Ariën -

09/09/2023 21:10:39
Quote Anchor link
Waarom die $ PHP variabelen in JavaScript?
 
Ivo P

Ivo P

09/09/2023 21:21:45
Quote Anchor link
variabelen MOGEN in javascript met een $ beginnen.
Dat is echter ongebruikelijk.

Je ziet ook dat je zelf eerst een waarde toekent aan code, en later $code gebruikt.

Wees consequent: of je gebruikt $ in javascript, of niet. Maar niet door elkaar.

Ik heb het zelf vaker mét gedaan. De reden was omdat ik vaker ruzie had met reserved words in javascript en ik toen nog te weinig kaas gegeten had van js om al dergelijke woorden te vermijden.

Ook niet raar is daarna de verwarring tussen $code in javascript en het niet spontaan in PHP bekend zijn van $code. (die uit $_POST of $_GET['code'] opgepikt moest worden.
 
- Ariën  -
Beheerder

- Ariën -

10/09/2023 01:09:44
Quote Anchor link
Hm, nooit geweten dat het kon, maar het maakt het wel verwarrend.
 
Paul Weiss

Paul Weiss

10/09/2023 11:05:23
Quote Anchor link
dat is inderdaad verwarrend.

Toevoeging op 10/09/2023 11:09:08:

Ivo P op 09/09/2023 21:21:45:
variabelen MOGEN in javascript met een $ beginnen.
Dat is echter ongebruikelijk.

Je ziet ook dat je zelf eerst een waarde toekent aan code, en later $code gebruikt.

Wees consequent: of je gebruikt $ in javascript, of niet. Maar niet door elkaar.

Ik heb het zelf vaker mét gedaan. De reden was omdat ik vaker ruzie had met reserved words in javascript en ik toen nog te weinig kaas gegeten had van js om al dergelijke woorden te vermijden.

Ook niet raar is daarna de verwarring tussen $code in javascript en het niet spontaan in PHP bekend zijn van $code. (die uit $_POST of $_GET['code'] opgepikt moest worden.


Je bedoeld dus beide zo

$code = content.innerHTML;
$paginanaam = "pagina1";

Of beide zo:

var code = content.innerHTML;
var paginanaam = "pagina1";

Maar moet ik in data van ajax dan nog iets verder aanpassen als ik var gebruik?
Gewijzigd op 10/09/2023 11:05:37 door Paul Weiss
 
- Ariën  -
Beheerder

- Ariën -

10/09/2023 11:48:56
Quote Anchor link
Je kan gewoon code en paginanaam gebruiken als variabele.
 
Ivo P

Ivo P

10/09/2023 23:40:14
Quote Anchor link
sowieso var gebruiken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
var code = content.innerHTML
var $code = content.innerHTML
var DollarCode = content.innerHTML


dat woord var regelt waar je var bekend is
 
Jan Koehoorn

Jan Koehoorn

18/09/2023 15:07:10
Quote Anchor link
Ivo P op 10/09/2023 23:40:14:
sowieso var gebruiken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
var code = content.innerHTML
var $code = content.innerHTML
var DollarCode = content.innerHTML


dat woord var regelt waar je var bekend is


Tegenwoordig hebben let en const meestal de voorkeur.
 
Paul Weiss

Paul Weiss

28/09/2023 09:46:23
Quote Anchor link
hartelijk dank voor de toelichting.
 



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.