2016-12-15 155 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