sagen, dass ich eine einfache Form wie dieses:Wie URL-Kodierung in Form GET-Anfrage, von Javascript, wenn Akzente und dergleichen beteiligt sind reproduzieren?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div id="search">
<form method="GET" action="/super-action">
<input type="text" name="q" />
</form>
</div>
</body>
</html>
mit einem Eingang wie: @tags "Cinéma Whatever"
ein Formular GET-Anfrage führt zu einer URL, die wie folgt aussieht: /super-action?q=%40tags+"Cinéma+Whatever"
Jetzt möchte ich reproduzieren das mit Javascript in location.hash, mit einem Pfundzeichen anstelle eines Schrägstrichs, wie: /super-action#q=%40tags+"Cinéma+Whatever"
Aber mit den verfügbaren Funktionen, bekomme ich dort Ergebnisse:
- escape (Eingang):
@tags%20%22Cin%E9ma%20Whatever%22
- encodeURI (Eingang):
@tags%20%22Cin%C3%A9ma%20Whatever%22
- encodeURIComponent (Eingang):
%40tags%20%22Cin%C3%A9ma%20Whatever%22
- $ (Form) .serialize(), ohne q =:
%40tags+%22Cin%C3%A9ma+Whatever%22
Die Frage: Wie kann ich einen Eingabewert, wie @tags "Cinéma Whatever"
, aussehen wie eine Form GET-Anfrage tun würde: %40tags+"Cinéma+Whatever"
mit Javascript?
Ich verstehe nicht genau, was Sie wollen, die GET-URL hat ein '?', Während die Zeichenfolge, die Sie machen möchten, ein '#' an seiner Stelle hat. Ist es richtig? Sie hätten gerne die gleiche Zeichenfolge wie bei einer GET-Anfrage, aber mit dem '' 'durch' # 'ersetzt? –
Wenn Sie eine js-Bibliothek zu Ihrer Seite hinzufügen möchten, habe ich möglicherweise eine Lösung. Ich würde gerne wissen, ob Ihre codierte URL-Zeichenfolge zuerst ein Fragezeichen oder ein Nummernzeichen haben soll. –
@Fabrico: Was ich versuche zu erreichen, ist ein Suchformular, das sowohl mit ajax als auch ohne funktioniert, wobei die gleiche Abfragezeichenfolge in der URL mit einem (#) oder einem (?) Verwendet wird. Auf diese Weise, wenn jemand eine URL mit dem Hash (#) bookmarken und zurückkommt, hole ich das Suchergebnis mit Javascript, indem ich alles, was nach diesem Hash ist, an den Server mit einem (?) Übertrage. Es könnte immer noch funktionieren, wenn Sonderzeichen wie "é" "% E9" ist, könnte PHP es wahrscheinlich auf der Serverseite konvertieren. Aber ich hatte gehofft, ich könnte das gleiche Konvertierungsformular verwenden, das GET macht. – bksunday