【问题标题】:PHP Get Form issuePHP获取表单问题
【发布时间】:2013-04-27 02:45:52
【问题描述】:

我有以下引用:

<form class="searchform" name="search" id="search" action="<?php echo base_url();?>video/search" method="get" >
                <input type="text" name="search_key" onblur="if (this.value == '') {this.value = 'Search video';}" onfocus="if (this.value == 'Search video') {this.value = '';}" value="<?php if(isset($search_key))echo $search_key;else echo 'Search video';?>" class="searchfield" onKeyPress="return submitenter(this,event)">
        </form>

搜索后的页面 url 如下所示 - 例如:

mypage.com/video/search?search_key=blabla

我用来展示它的代码是:

<?php echo $_GET["search_key"]; ?>

但它不起作用,我不明白为什么。

我无法让 -blabla- 出现在页面中。

【问题讨论】:

  • mypage.com/video/search 是 php 文件吗?

标签: php forms post get show


【解决方案1】:

你在form标签中的action,应该是像myphp.php这样的PHP文件,然后你可以使用$_GET[["search_key'];atmyphp.php`来获取它。例如

action="<?php echo base_url();?>video/search/myphp.php"

那么 URL 应该是 mypage.com/video/search/myphp.php?search_key=blabla

【讨论】:

    【解决方案2】:

    使用var_dump($_GET) 看看$_GET 超级全局中是否有任何值,这会将对象的不太漂亮的字符串转储到屏幕上。

    还可以尝试$_REQUEST$GLOBALS 变量,并通过与上述相同的操作查看它们是否具有任何值。

    如果这些不显示您的值,您可能需要强制设置表单的 enctype,以便 PHP 知道它可以将查询字符串(从 ? 开始的文本)或 POST 数据放入超级全球人。您将要使用的enctypeapplication/x-www-form-urlencoded,即meant to be the default value,但以防万一,请设置它。

    设置后,您的表单将如下所示

    <form class="searchform" name="search" id="search" action="<?php echo base_url();?>video/search" method="get" enctype="application/x-www-form-urlencoded">
        <input type="text" name="search_key" onblur="if (this.value == '') {this.value = 'Search video';}" onfocus="if (this.value == 'Search video') {this.value = '';}" value="<?php if(isset($search_key))echo $search_key;else echo 'Search video';?>" class="searchfield" onKeyPress="return submitenter(this,event)" />
    </form>
    

    Super Globals

    另外,如果您错过了它,您的 input 标签在关闭 &gt; 之前需要一个 /,例如 /&gt;,否则它不是有效的标记。

    【讨论】:

      【解决方案3】:

      如果显示 URL /search?search_key=blabla,请尝试使用 $_POST 并使用 print_r($_POST) 捕获,因为 CI 上的默认表单方法是使用 post。

      【讨论】:

        【解决方案4】:

        要从查询字符串中获取值,您必须将查询字符串设置为 true。

        去 1) 应用程序/config/config.php 2) 设置查询字符串选项为真

        例如。 $config['enable_query_strings'] = true;

        你可以得到 $_GET["search_key"]

        其他明智的发送值,如

        mypage.com/video/search/blabla
        

        您将在 cideo 控制器的搜索功能的第一个参数中获得“blabla”。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-10-27
          • 2013-02-24
          • 2022-06-10
          • 2023-03-25
          • 2012-09-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多