Форма воспламенителя кода - JavaScript в переменной PHP. Не для слабонервных - PullRequest
2 голосов
/ 18 октября 2010

Это привело меня к рассолу, хотя я уверен, что это довольно легко.

Мне нужно получить значение хеша из родительского окна uri и вставить его в функцию set_value (). Очевидно, что я не могу получить хеш с PHP, поэтому это должен быть javascript.

parent.location.hash

работает, но я не знаю, как получить его в set_value ().

Ниже приведен код, с которым я работаю (очевидно, неправильно, но вы поняли):

<label for="appt_start">Start Time</label>
<?php echo form_error('appt_start'); ?>
<br />
<input id="appt_start" type="text" name="appt_start" maxlength="12" 
value="<?php $time = "<script>document.write('parent.location.hash');
</script>"; set_value('appt_start', $time) ;?>" />

Спасибо!

Ответы [ 3 ]

4 голосов
/ 18 октября 2010

Вам понадобится вызов AJAX, чтобы отправить его обратно на сервер.Javascript работает на стороне клиента, PHP работает на сервере.К тому времени, когда страница загружается и клиент приступает к выполнению Javascript, серверный PHP уже завершил свою работу и завершил работу.У них нет возможности работать вместе напрямую.

3 голосов
/ 19 октября 2010

set_value устанавливает значение поля <input>. Это также может быть сделано в JavaScript, без использования Ajax или PHP.

<html>
<head>
    <script type="text/javascript">
        window.onload = set_hash_value_to_appt_start;

        function set_hash_value_to_appt_start()
        {
            appt_start = document.getElementById('appt_start');
            appt_start.value = parent.location.hash.substring(1);
        }
    </script>
</head>
<body>
    <input id="appt_start" type="text" name="appt_start" maxlength="12">
</body>
</html>
1 голос
/ 19 октября 2010

Вы можете использовать jQuery для установки его на вход:

$('#appt_start').val(parent.location.hash);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...