Jquery ajax verzend niet alle tekens.
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
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
<?php
function updateDeCodering()
{
var id = $("#id").val();
var code = $("#codering").val();
var getString = "id="+id+"&code="+code;
$.ajax(
{
type: "GET",
data: getString,
url: "../data/insertData.php",
dataType: "json",
success: function(data)
{
alert('voltooid');
},
error: function(jqXHR, textStatus, errorThrown)
{
alert('fout updateCodering');
alert(jqXHR);
alert(textStatus);
alert(errorThrown);
}
});
}
?>
function updateDeCodering()
{
var id = $("#id").val();
var code = $("#codering").val();
var getString = "id="+id+"&code="+code;
$.ajax(
{
type: "GET",
data: getString,
url: "../data/insertData.php",
dataType: "json",
success: function(data)
{
alert('voltooid');
},
error: function(jqXHR, textStatus, errorThrown)
{
alert('fout updateCodering');
alert(jqXHR);
alert(textStatus);
alert(errorThrown);
}
});
}
?>
Het veld codering en id zijn beide invoervelden. Nu is het probleem dat als ik dus een teken als '+' in 1 van deze velden plaatst deze niet correct wordt meegestuurd. Heb insertData.php deze parameter laten echo'en en hij heeft dan het hele + teken niet meegekregen. Als ik gewoon standaard tekst gebruik werkt het wel Weet iemand hier een oplossing voor? Ik zit zelf te denken om het op de 1 of andere manier te escapen maar kan er niet echt iets over vinden.
Bedankt
data: {
id: id,
code: code
},
Kijk of dat werkt en anders heb je nog altijd encodeURIComponent
Ook met ajax kan je daar beter rekening mee houden.
Denk er aan: alle karakters waar een URL het moeilijk mee heeft, zullen problemen geven.
- Get dient voor bv. een id te sturen.
De gebruiker stuurt een id naar de server. Dan stuurt de server de inhoud van dat record terug.
- Wanneer een gebruiker informatie toevoegt aan een website (commentaar, ...) gebruik je post.
Zonder dit getest te hebben ... probeer dit eens
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
$.ajax({
type: "POST",
data: {
id: $("#id").val(),
code: $("#codering").val()
},
...
type: "POST",
data: {
id: $("#id").val(),
code: $("#codering").val()
},
...
En uiteraard $_POST in plaats van $_GET bij het verwerken.
Toevoeging op 07/08/2013 10:14:34:
Het werkt, bedankt allemaal voor de antwoorden. Ga nu direct mijn datainvoer functies omzetten naar POST