【问题标题】:Code Igniter Form - Javascript in PHP Variable. Not for the faint of heartCode Igniter Form - PHP 变量中的 Javascript。不适合胆小的人
【发布时间】:2011-04-27 01:45:46
【问题描述】:

这让我陷入了困境,尽管我确信这可能相当容易。

我需要从父窗口 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) ;?>" />

谢谢!

【问题讨论】:

  • 抱歉耽搁了,感谢您的回复。表单正在通过 ajax (jquery) 被拉入页面,所以我对东京船长的回答有疑问,完全不知道为什么。黑马赢了这个,Tpae(在答案的底部),所以谢谢你!

标签: php javascript codeigniter


【解决方案1】:

您需要使用 AJAX 调用将其发送回服务器。 Javascript 在客户端运行,PHP 在服务器端运行。当页面被加载并且客户端开始执行 Javascript 时,服务器端 PHP 已经完成了它的工作并关闭了。两者没有办法直接合作。

【讨论】:

    【解决方案2】:

    set_value 设置&lt;input&gt; 字段的值。这也可以在 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>
    

    【讨论】:

      【解决方案3】:

      您可以使用 jQuery 将其设置为输入:

      $('#appt_start').val(parent.location.hash);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多