Я не могу точно сказать, полностью ли вы понимаете связь между Javascript и PHP, поэтому я предполагаю, что вы не понимаете.PHP работает на сервере и выводит HTML в браузер (вместе с некоторыми заголовками и прочим).Как только HTML-код отправляется в браузер, то, что пользователь делает с вашим сайтом, становится вне вашего контроля, пока его браузер не выполнит другой запрос GET или POST (или не откроет постоянное соединение через веб-сокет).Как вы упомянули, для PHP невозможно сразу прочитать значение хэша, поскольку он предназначен только для браузера, доступного только через Javascript.Поскольку ваш PHP-скрипт для этого конкретного запроса прекратил работу, и данные страницы уже были выведены в браузер, какой смысл в том, чтобы захватывать значение с помощью Javascript, отправлять его обратно в PHP с помощью другого http-запроса, используйте set_value ()функция, а затем что?
Если вы используете window.location.hash и устанавливаете значение вашего поля ввода равным ему, вы сможете использовать set_value (), когда пользователь отправляет форму.Взгляните на вспомогательную функцию CI set_value ():
function set_value($field = '', $default = '')
{
if (FALSE === ($OBJ =& _get_validation_object()))
{
if ( ! isset($_POST[$field]))
{
return $default;
}
return form_prep($_POST[$field], $field);
}
return form_prep($OBJ->set_value($field, $default), $field);
}
Сначала проверяется, настроили ли вы объект проверки формы.Если у вас есть, он запускает функцию form_prep (), используя set_value этого объекта (предположительно, чтобы управлять любыми правилами, которые вы установили в проверке формы. Если нет, он видит, существует ли это поле в массиве $ _POST.это не так, он возвращает значение по умолчанию. Если это так, он возвращает значение из массива $ _POST. Поэтому, если вы а) установите для него правило проверки формы и б) дадите этому полю ввода имя, которое вы хотитеиспользуйте в своей функции set_value (), вы сможете получить значение хэша в PHP, которое вы ввели в это поле ввода, используя Javascript.