gc code omzetten naar ID
Ik heb volgende code en die werkt perfect.
Maar mijn probleem is dat de weergave gebeurd in een ID (<div id="gcCodeIdDiv"></div>)
Ik zou graag de omrekening hebben in een php variable $idcode.
Kan iemand hiermee helpen AUB ?
Code (php)
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GC Code Converter</title>
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<div id="gcCodeIdDiv"></div>
<script>
<?php
$methode = "gcCode2Id";
$code = "GCA84W5";
?>
var method = <?php echo json_encode($methode); ?>;
var code = <?php echo json_encode($code); ?>;
function convertGCCode(method, chars) {
if (chars.length > 0) {
var newDiv = '<b>Result:</b><br>';
} else {
$('#gcCodeIdDiv').html('');
return;
}
var splitChars = chars.split(' ');
for (var i = 0; i < splitChars.length; i++) {
var input = splitChars[i];
if (method == 'gcCode2Id') {
input = input.substring(2);
var srcAlphabet = '0123456789ABCDEFGHJKMNPQRTVWXYZ';
var dstAlphabet = '0123456789';
} else {
var srcAlphabet = '0123456789';
if (parseInt(input, 10) + 411120 < 476656) {
var dstAlphabet = '0123456789ABCDEF';
} else {
var dstAlphabet = '0123456789ABCDEFGHJKMNPQRTVWXYZ';
input = (parseInt(input, 10) + 411120).toString();
}
}
var output = convertGC(input, srcAlphabet, dstAlphabet);
if (method == 'gcCode2Id') {
if (parseInt(output, 10) < 476656) {
var srcAlphabet = '0123456789ABCDEF';
output = convertGC(input, srcAlphabet, dstAlphabet);
} else {
output = (parseInt(output, 10) - 411120).toString();
}
if (output != 0) {
newDiv += output + ' ';
}
} else {
if (output != 0) {
newDiv += 'GC' + output + ' ';
}
}
}
$('#gcCodeIdDiv').html(newDiv);
}
function convertGC(src, srcAlphabet, dstAlphabet) {
var srcBase = srcAlphabet.length;
var dstBase = dstAlphabet.length;
var wet = src;
var val = 0;
var mlt = 1;
while (wet.length > 0) {
var digit = wet.charAt(wet.length - 1);
var digVal = srcAlphabet.indexOf(digit);
if (digVal > -1) {
val += mlt * digVal;
mlt *= srcBase;
}
wet = wet.substring(0, wet.length - 1);
}
wet = val;
var ret = "";
while (wet >= dstBase) {
var digitVal = wet % dstBase;
var digit = dstAlphabet.charAt(digitVal);
ret = digit + ret;
wet /= dstBase;
}
var digit = dstAlphabet.charAt(wet);
ret = digit + ret;
return ret;
}
convertGCCode(method, code);
</script>
</head>
</html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GC Code Converter</title>
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<div id="gcCodeIdDiv"></div>
<script>
<?php
$methode = "gcCode2Id";
$code = "GCA84W5";
?>
var method = <?php echo json_encode($methode); ?>;
var code = <?php echo json_encode($code); ?>;
function convertGCCode(method, chars) {
if (chars.length > 0) {
var newDiv = '<b>Result:</b><br>';
} else {
$('#gcCodeIdDiv').html('');
return;
}
var splitChars = chars.split(' ');
for (var i = 0; i < splitChars.length; i++) {
var input = splitChars[i];
if (method == 'gcCode2Id') {
input = input.substring(2);
var srcAlphabet = '0123456789ABCDEFGHJKMNPQRTVWXYZ';
var dstAlphabet = '0123456789';
} else {
var srcAlphabet = '0123456789';
if (parseInt(input, 10) + 411120 < 476656) {
var dstAlphabet = '0123456789ABCDEF';
} else {
var dstAlphabet = '0123456789ABCDEFGHJKMNPQRTVWXYZ';
input = (parseInt(input, 10) + 411120).toString();
}
}
var output = convertGC(input, srcAlphabet, dstAlphabet);
if (method == 'gcCode2Id') {
if (parseInt(output, 10) < 476656) {
var srcAlphabet = '0123456789ABCDEF';
output = convertGC(input, srcAlphabet, dstAlphabet);
} else {
output = (parseInt(output, 10) - 411120).toString();
}
if (output != 0) {
newDiv += output + ' ';
}
} else {
if (output != 0) {
newDiv += 'GC' + output + ' ';
}
}
}
$('#gcCodeIdDiv').html(newDiv);
}
function convertGC(src, srcAlphabet, dstAlphabet) {
var srcBase = srcAlphabet.length;
var dstBase = dstAlphabet.length;
var wet = src;
var val = 0;
var mlt = 1;
while (wet.length > 0) {
var digit = wet.charAt(wet.length - 1);
var digVal = srcAlphabet.indexOf(digit);
if (digVal > -1) {
val += mlt * digVal;
mlt *= srcBase;
}
wet = wet.substring(0, wet.length - 1);
}
wet = val;
var ret = "";
while (wet >= dstBase) {
var digitVal = wet % dstBase;
var digit = dstAlphabet.charAt(digitVal);
ret = digit + ret;
wet /= dstBase;
}
var digit = dstAlphabet.charAt(wet);
ret = digit + ret;
return ret;
}
convertGCCode(method, code);
</script>
</head>
</html>
Met welke reden wil je dit in PHP gebruiken?
ga er dan een lus van maken om mijn bestand af te lopen en de id_code in te vullen ...
Dan moet je de waarde met AJAX naar een PHP-script doorsturen.
Hoe geef ik die dan door ? dat is mijn vraag aan specialisten.
https://www.freecodecamp.org/news/how-to-use-fetch-api/
Hiermee kan je de waarde van newDiv doorsturen naar een apart PHP-script die het in een database kan plaatsen.
oke bedankt
Ik heb een klein stukje gemaakt met uw aanbeveling AJAX doorsturen, hieronder mijn code index.html(java) script en process_location.php waar het zou moeten gebeuren ???
Maar blijkbaar omdat er in het java script met een ID gewerkt wordt , worden de cords doorgegeven maar keert het terug naar de index, en dit zou niet mogen het zou in het php gedeelte moeten blijven.
Is er hier iemand die mij kan helpen hiermee ????
Code (php)
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
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Locatie weergeven</title>
</head>
<body>
<h1>Uw huidige locatie</h1>
<p id="location"></p>
<script>
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
document.getElementById("location").innerHTML = "Geolocatie wordt niet ondersteund door uw browser.";
}
function showPosition(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.getElementById("location").innerHTML = "Latitude: " + latitude + "<br>Longitude: " + longitude;
var xhr = new XMLHttpRequest();
xhr.open("POST", "process_location.php", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send("latitude=" + latitude + "&longitude=" + longitude);
}
</script>
</body>
</html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Locatie weergeven</title>
</head>
<body>
<h1>Uw huidige locatie</h1>
<p id="location"></p>
<script>
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
document.getElementById("location").innerHTML = "Geolocatie wordt niet ondersteund door uw browser.";
}
function showPosition(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.getElementById("location").innerHTML = "Latitude: " + latitude + "<br>Longitude: " + longitude;
var xhr = new XMLHttpRequest();
xhr.open("POST", "process_location.php", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send("latitude=" + latitude + "&longitude=" + longitude);
}
</script>
</body>
</html>
process_location.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
file_put_contents('log.txt', date('Y-m-d H:i:s') . " - Script uitgevoerd\n", FILE_APPEND);
$latitude = $_POST['latitude'];
$longitude = $_POST['longitude'];
file_put_contents('log.txt', "Latitude: " . $latitude . ", Longitude: " . $longitude . "\n", FILE_APPEND);
echo "Ontvangen locatie: Latitude " . $latitude . ", Longitude " . $longitude;
exit();
?>
error_reporting(E_ALL);
ini_set('display_errors', 1);
file_put_contents('log.txt', date('Y-m-d H:i:s') . " - Script uitgevoerd\n", FILE_APPEND);
$latitude = $_POST['latitude'];
$longitude = $_POST['longitude'];
file_put_contents('log.txt', "Latitude: " . $latitude . ", Longitude: " . $longitude . "\n", FILE_APPEND);
echo "Ontvangen locatie: Latitude " . $latitude . ", Longitude " . $longitude;
exit();
?>
Het probleem is de echo wordt dus niet weergeven op scherm, de ID wel ???
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
if (xhr.status >= 200 && xhr.status < 300) {
// Toon de respons in de console of op een webpagina
alert(xhr.responseText); // Output naar alert
// Als je de output op een webpagina wilt tonen, kun je deze bijvoorbeeld in een HTML-element plaatsen met document.getElementById() en innerHTML gebruiken
// document.getElementById('output').innerHTML = xhr.responseText; // Output naar een HTML-element met id "output"
} else {
// Als het verzoek niet succesvol was, toon dan een foutmelding
alert('Het verzoek is mislukt met statuscode: ' + xhr.status);
}
// Toon de respons in de console of op een webpagina
alert(xhr.responseText); // Output naar alert
// Als je de output op een webpagina wilt tonen, kun je deze bijvoorbeeld in een HTML-element plaatsen met document.getElementById() en innerHTML gebruiken
// document.getElementById('output').innerHTML = xhr.responseText; // Output naar een HTML-element met id "output"
} else {
// Als het verzoek niet succesvol was, toon dan een foutmelding
alert('Het verzoek is mislukt met statuscode: ' + xhr.status);
}
Bij AJAX problemen kan het ook geen kwaad om de AJAX-debugger van je browser eens ander te bekijken.
Gewijzigd op 28/12/2023 16:51:24 door - Ariën -
Begrijp het niet goed , die java is ook mijn ding niet.
Begrijp niet als je in java verwijst naar een php , dat het dan terug keert naar java ???
Toevoeging op 28/12/2023 17:02:30:
zoals je ziet doe ik een log file en in die log file is alles juist, waarom blijft het dan niet in deze php
Dat is totaal wat anders, en enkel de naam lijkt erop.
Als je mijn code toevoegt, dan moet je een alert zien met je response. Een console.log() kan ook, en die kan je dan in de debug-console van je browser terugvinden.
Het verzoek is mislukt met statuscode: 0
Wat zie je in de debug-console van je browser?
Dat alles goed is , maar waarom keert hhet programma index terug als het process aangeroepen heeft.
Als iemand weet hoe ik in process kan blijven is dat voor mij voldoende , want de gegevens worden goed doorgegeven.
Wat geeft xhr.status in een alert() of console.log()?
Zoals er in het commentaar staat heb je in xhr.responseText je text staan die je in JavaScript verder kan gebruiken. Zoals innerHtml om deze in een HTML-element te plaatsen.
Gewijzigd op 28/12/2023 17:43:15 door - Ariën -
Het verzoek is mislukt met statuscode: 0
Dus het gaat naar process en keert terug terwijl alles goed doorgegeven wordt, dus er zijn geen fouten ...
In de debug-tab kan je het veel makkelijker zien. Daar hoor ik je helaas niet over.
Gewijzigd op 28/12/2023 18:07:24 door - Ariën -
Het verzoek is mislukt met statuscode: 0
Code (php)
1
Breedtegraad: N51 10.322<br>Lengtegraad: E003 44.582<br>Ontvangen locatie: Latitude 51.1720345, Longitude 3.7430289
Met andere woorden: Wat heb je gedaan om dit op je scherm te tonen?