Nói rằng tôi có một hình thức đơn giản như thế này:Làm thế nào để tái tạo mã hóa url dưới dạng yêu cầu GET, từ javascript, khi dấu trọng âm và các tham số đó có liên quan?
<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>
với một đầu vào như: @tags "Cinéma Whatever"
một hình thức GET yêu cầu kết quả trong một url trông giống như: /super-action?q=%40tags+"Cinéma+Whatever"
Bây giờ tôi muốn sinh sản với javascript trong location.hash, với dấu thăng thay vì dấu gạch chéo, như: /super-action#q=%40tags+"Cinéma+Whatever"
Nhưng với các chức năng có sẵn, tôi nhận được kết quả ở đó:
- thoát (đầu vào):
@tags%20%22Cin%E9ma%20Whatever%22
- encodeURI (đầu vào):
@tags%20%22Cin%C3%A9ma%20Whatever%22
- encodeURIComponent (đầu vào):
%40tags%20%22Cin%C3%A9ma%20Whatever%22
- $ (theo mẫu) .serialize(), mà không q =:
%40tags+%22Cin%C3%A9ma+Whatever%22
Câu hỏi: Làm cách nào để tạo giá trị đầu vào, như @tags "Cinéma Whatever"
, giống như yêu cầu của biểu mẫu GET: %40tags+"Cinéma+Whatever"
bằng javascript?
Tôi không hiểu chính xác những gì bạn muốn, URL GET có '?' Trong khi chuỗi bạn muốn tạo có '#' ở vị trí của nó. Nó có đúng không? Bạn muốn có cùng một chuỗi mà bạn có với một yêu cầu GET nhưng với '?' Được thay thế bởi '#'? –
Nếu bạn sẵn sàng thêm thư viện js vào trang của mình, tôi có thể có giải pháp. Tôi muốn biết nếu bạn muốn chuỗi URL được mã hóa của mình có dấu hỏi hoặc dấu hiệu số đầu tiên. –
@Fabricio: Những gì tôi đang cố gắng đạt được là biểu mẫu tìm kiếm hoạt động cả với ajax và không có, sử dụng cùng một chuỗi truy vấn trong url có dấu (#) hoặc (?). Bằng cách đó, nếu ai đó đánh dấu một url bằng hàm băm (#) và quay trở lại, tôi lấy kết quả tìm kiếm bằng javascript bằng cách chuyển bất kỳ thứ gì sau băm đó đến máy chủ bằng dấu (?). Nó vẫn có thể hoạt động nếu các ký tự đặc biệt như "é" là "% E9", php có thể chuyển đổi nó ở phía máy chủ. Nhưng tôi đã hy vọng tôi có thể sử dụng cùng một hình thức chuyển đổi GET. – bksunday