2016-12-15 158 views
0

我在客户端wordpress网站上有一个下载部分。使用下载监视器插件。它们使用Ninja Forms插件为DM插件提供表单保护,因此用户必须注册详细信息以访问下载。使用页面URL填充表单域

我想将ID从下载表单URL添加到表单中的一个字段,以便客户端可以看到表单注册与哪个下载关联。

开锁登记表特定下载生成的URL类似于以下内容:

https://domain.com/no-access/download-id/572/

我已经找到了如何使用查询字符串(https://ninjaforms.com/how-to-auto-populate-form-fields-using-query-string/),但不知道这样做如何使用上面我的网址中的ID做到这一点。

理想情况下,如果可能的话,我想将该ID转换为实际的下载标题。

任何人都可以请指教?

谢谢!

回答

0

如果ID总是在网址的结尾是这样,你可以使用basename抓住它很简单:

<?php 
    // in your code you will do this: 
    //$url = $_SERVER['REQUEST_URI']; 

    // but for this example, i need your url: 
    $url = 'https://domain.com/no-access/download-id/572/'; 

    // grab the basename: 
    $id = basename($url); 

    echo "($id)"; // (572) 

加成现在

,你可以找到$id这是请求的下载ID,将其放入一个变量中,您可以在写入忍者形式的代码中使用该变量。例如:

$url = $_SERVER['REQUEST_URI']; 

    // this was just for debugging...now comment it out 
    // $url = 'https://domain.com/no-access/download-id/572/'; 
    // echo "($id)"; (572) 

    $id = basename($url); 

    // instead put it in a variable you can use in your form 
    $GLOBALS['requested-download-id'] = (integer) $id; 

现在,无论你的代码为你的忍者形式做这样的事情:

<form id="ninja-form" action="your-action" method="POST"> 

    <?php 
    // sanity check...something may have gone wrong 
    if (empty($GLOBALS['requested-download-id'])) { 
     $download_id = 'NOT FOUND'; 
    } else { 
     $download_id = $GLOBALS['requested-download-id']; 
    } 
    ?> 
    <input value="<?php echo $download_id; ?>" type="hidden" name="download-id"> 

更加简化 - 做这一切一下子

<form id="ninja-form" action="your-action" method="POST"> 

    <?php 
    $id = basename($_SERVER['REQUEST_URI']); 
    // be sure you ended up with a number 
    $id = (integer) $id; 

    if (empty($id)) { 
     $download_id = 'NOT FOUND'; 
    } else { 
     $download_id = $id; 
    } 
    ?> 
    <input value="<?php echo $download_id; ?>" type="hidden" name="download-id"> 
+0

好非常感谢,所以我会将网址更改为https://domain.com/no-access/然后以572为基准名称是正确的?我现在需要弄清楚如何将这个添加到忍者表单的隐藏字段 – igloobob

+0

发表一些代码。此外,我没有按照关于更改您的网址无法访问的评论。我只是复制你的示例url。如果你得到'domain.com/no-access'的'basename()',那么你将会抓住'no-access'而不是'572'。 – WEBjuju

+0

看到我的[编辑](http://stackoverflow.com/questions/41166749/populate-a-form-field-with-page-url/#answer-41166873) – WEBjuju