input type text, placeholder en value
Na een selectie, moet de waarde in een input veld komen.
Dit input veld word dan weer gebruikt voor een GET zoek query.
Van alle spaties maakt hij een +.
Het punt is dat ik de url-encoded versie bijv voor een plaats in vietnam: "ham-yen" heb, maar wat getoond moet worden in de input waarde is: Hàm Yên met accenten etc.
Het laatste probeerde ik in een placeholder te doen, maar de "value" waarde neemt de overhand.
Code (php)
1
2
2
$("#sregion3").val(data.region3Url); // de url waarde ham-yen
$("#sregion3").attr('placeholder', data.region3); / de originele waarde Hm Yn
$("#sregion3").attr('placeholder', data.region3); / de originele waarde Hm Yn
Ik wil dus dat men in de input de originele waarde ziet, maar de "url friendly" waarde gebruikt. Is dit mogelijk?
1 van type=text maar zonder name. Daarin staat de tekst met accenten.
en een tweede input van type hidden en dan de tekst zonder de accenten.
Blijft de vraag waarom je niet mét accent zou zoeken en dan bij het zoek-proces zelf evnetueel de teksten normaliseren.
Iemand die gewend is aan de accenten, zal ook geneigd zijn om die in een url te typen. Mysql is ook in staat om "e" en "é" als hetzelfde te zien.
$("#sregion3").val
$("#sregion3").attr('placeholder' weer wel.
Het is jammer dat je bijv niet de placeholder tekst kan tonen en de value op verborgen zet.
<input name="city" type="text" id="sregion3" value="capelle-aan-den-ijssel" placeholder="Capelle aan den IJssel">
Gewijzigd op 18/04/2017 12:46:26 door Daniel van Seggelen
als je trouwens via een dropdown selecteert: haal je die plaatsnamen dan uit een database? Hebben die geen numeriek id?
Code (php)
1
2
3
4
5
2
3
4
5
<select name="plaatsnamen">
<option value="123">Amsterdam</option>
<option value="456">Malm</option>
<option value="789">Gtenborg</option>
</select>
<option value="123">Amsterdam</option>
<option value="456">Malm</option>
<option value="789">Gtenborg</option>
</select>
Als je vervolgens laat zoeken van de value 789 dan weet je database wel dat het om Götenborg gaat.
Desnoods fabriek je daar een url als /zoeken/789/Götenborg
bij waarbij je puur vaart op het getal 789 en verhaspeling van de tekst er niet toe doet.
PAs hierboven in je browser maar eens de url aan: als je de tekst aanpast, maar 101147 laat staan, krijg je gewoon hetzelfde topic
Nee, ik gebruik geen numerieke is, in dit geval maakt het ook niet uit, deze kan ik trouwens wel doorgeven aan value:
Capelle aan den IJssel
maar de vreemde accenten als "Hàm Yên" komen daar niet in terecht. Ook geen foutmelding trouwens
als ik het test, gaat het goed.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<input id="a" value="Hm Yn">
<button id="btn" type="button"> Go </button>
<input id="b">
<select id="c">
<option value="Hm Yn">ham</option>
</select>
<input id="d">
<button id="btn" type="button"> Go </button>
<input id="b">
<select id="c">
<option value="Hm Yn">ham</option>
</select>
<input id="d">
en de js:
Code (php)
1
2
3
4
2
3
4
$('#btn').on('click', function(){
$('#b').val($('#a').val());
$('#d').val($('#c').val());
});
$('#b').val($('#a').val());
$('#d').val($('#c').val());
});
Gewijzigd op 18/04/2017 13:03:16 door Ivo P
Ook zoaiets vreemds, waneer ik een plaatsnaam wil toevoegen als attribuut in een li element:
Code (php)
1
$listSelector.append("<li URL = "+reg[0]+" naam = "+reg[1]+"><span> "+reg[1]+"</span></li>");
Dan krijg ik bij naam:
<li url="capelle-aan-den-ijssel" naam="Capelle" aan="" den="" ijssel=""><span> Capelle aan den IJssel</span></li>
Hoe krijg ik alleen spaties in een attribuut? laat staan rare accenten??
probeer eens:
Code (php)
1
$listSelector.append('<li URL="' +reg[0]+ '" naam="' +reg[1]+ '"><span>' +reg[1]+ '</span></li>');
Toevoeging op 18/04/2017 13:35:32:
anders krijg je
<li naam=capelle aan den ijssel>
En waarom zou DEN in dit geval anders zijn dan NAAM.
Vandaar dat je browser er ook van maakt DEN="", een leeg attribuut.
naam="capelle aan den ijssel" maakt duidelijk dat alles tussen de "" de inhoud van het attribuut is.
Daniel van Seggelen op 18/04/2017 13:29:45:
Ik heb gechecked, maar staat echt op utf-8
Maar is alles ook echt UTF-8?
Hoe zijn deze waarden weggeschreven in je database?
Hoe luiden de tabel- en kolomdefinities van de tabellen?
Hoe maak jij een verbinding met je database? En selecteer je ook een character encoding?
Heb je gecontroleerd of je database mogelijk vertalingen maakt van character encoding A naar character encoding B bij het ophalen van gegevens?
Hoe luidt de character encoding van je HTML-document?
Als er tekens wegvallen is dit een indicatie dat er iets mis is met de encodering van je karakters.
De oplossing van @Ivo is waarschijnlijk nog het beste dat je een URL-vriendelijke variant in een data-veld zet (JavaScript weet immers niet hoe deze vertaling precies verloopt), of nog beter, werk met id's.
Gewijzigd op 18/04/2017 17:52:48 door Thomas van den Heuvel
Dat lijkt me een probleem van phphulp.
In mijn code stonden ze wel.