input type text, placeholder en value

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daniel van Seggelen

Daniel van Seggelen

18/04/2017 10:37:18
Quote Anchor link
Ik heb een systeem, waarbij ik aan dehand van een dropdown plaatsnamen selecteer.
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)
PHP script in nieuw venster Selecteer het PHP script
1
2
            $("#sregion3").val(data.region3Url); // de url waarde ham-yen
            $("#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?
 
PHP hulp

PHP hulp

24/04/2024 10:36:08
 
Ivo P

Ivo P

18/04/2017 11:43:17
Quote Anchor link
ik zou voor zo'n benadering kiezen voor 2 inputs:

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.
 
Daniel van Seggelen

Daniel van Seggelen

18/04/2017 12:39:05
Quote Anchor link
Het laatste wil ik wel, maar het punt is, dat ik via jquery, die vreemde accenten niet in de value krijg via
$("#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
 
Ivo P

Ivo P

18/04/2017 12:47:13
Quote Anchor link
Dat is vreemd. Staat wel alles op de juiste karakterset? (utf?)

als je trouwens via een dropdown selecteert: haal je die plaatsnamen dan uit een database? Hebben die geen numeriek id?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<select name="plaatsnamen">
  <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
 
Daniel van Seggelen

Daniel van Seggelen

18/04/2017 12:52:46
Quote Anchor link
Snap ik, chatset is zeker utf-8
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
 
Ivo P

Ivo P

18/04/2017 13:02:40
Quote Anchor link
weird:
als ik het test, gaat het goed.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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">


en de js:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
$('#btn').on('click', function(){
    $('#b').val($('#a').val());
    $('#d').val($('#c').val());
});
Gewijzigd op 18/04/2017 13:03:16 door Ivo P
 
Daniel van Seggelen

Daniel van Seggelen

18/04/2017 13:29:45
Quote Anchor link
Ik heb gechecked, maar staat echt op utf-8

Ook zoaiets vreemds, waneer ik een plaatsnaam wil toevoegen als attribuut in een li element:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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??
 
Ivo P

Ivo P

18/04/2017 13:33:39
Quote Anchor link
attributen horen tussen "" te staan.

probeer eens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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.
 
Thomas van den Heuvel

Thomas van den Heuvel

18/04/2017 17:50:43
Quote Anchor link
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
 
Ivo P

Ivo P

18/04/2017 21:52:47
Quote Anchor link
valt me nu pas op dat in mijn post hierboven de plaatsnamen met accenten in de code overal de betreffende letters missen.
Dat lijkt me een probleem van phphulp.
In mijn code stonden ze wel.
 



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.