В первой части вашего вопроса вы не упомянули то, что пытались, но если вы используете jQuery, то .html()
и .text()
методы - это обычный подход, и они очень просты.
Используйте некоторые классы CSS и идентификаторы в своем HTML, чтобы вы могли точно выбирать элементы, на которые вы хотите ориентироваться.Например, допустим, что ваша form_sent.html
страница содержит что-то вроде этого:
<table>
<tr>
<td>Phone</td>
<td>Address</td>
....
</tr>
<tr>
<td class='phone'></td>
<td class='address'></td>
....
</table>
Теперь в jQuery вы можете настроить таргетинг на эти ячейки и добавить содержимое следующим образом:
$('.phone').text($.urlParam('phone'));
Что касаетсяВторая часть вашего вопроса, это немного сложнее.Прежде всего вам нужно добавить флаг g
в ваше регулярное выражение, чтобы убедиться, что вы соответствуете всем вхождениям, а не только первому:
RegExp('[\?&]' + name + '=([^&#]*)', 'g')
Далее, сваш текущий подход с использованием .exec()
, вам придется многократно повторять, чтобы соответствовать нескольким вхождениям. Документы MDN имеют пример именно этого .
Вот обновленная версия вашего кода с использованием их подхода:
$.urlParam = function (name) {
var reg = new RegExp('[\?&]' + name + '=([^&#]*)', 'g'),
matches = [];
while ((results = reg.exec(window.location.href)) !== null) {
matches.push(results[1])
}
return matches;
};
// Now:
// console.dir($.urlParam('phone'));
// console.dir($.urlParam('order'));
//
// Array(1)
// 0: "4325325235"
//
// Array(2)
// 0: "book1"
// 1: "book2"
//
$.urlParam
теперь возвращает массив, возможно нулевого размера, вместо строки, как ранее, так что выВам нужно будет назвать его по-другому, но это ваша следующая задача :-) Если этот подход не подходит, возможно, другой вариант - запустить его (или вариант) один раз, при загрузке страницы, ища любой Параметры URL, а не один конкретный именованный параметр.Эти результаты могут быть сохранены в переменной, которую вы сможете использовать позже.
Кроме того, примечание: я заметил, что один из ваших параметров имеет опечатку - adress
вместо address
, что, вероятно, вызовет у вас путаницуи головная боль в какой-то момент в будущем: -)
Примечание: используйте CSS!Получить эти встроенные стили оттуда.
form {
width: 500px;
}
.label {
width: 50px;
}
.label-wide {
width: 100px;
}