2012-06-19 40 views
2

我的目標是從WordPress中定義的自定義字段中設置Google轉化價值。轉化腳本位於着陸頁上,因此我需要將我的自定義字段數據從我的表單轉到着陸頁。我無法使用GET或POST,因爲表單提交是由第三方處理的,並且沒有數據返回到實際登錄頁面。發送PHP變量,通過jQuery登陸頁面,同時跳過第三方提交腳本?

所以我嘗試過使用PHP會話,但是這個第三方正在以能夠使用PHP的方式進行,因爲它保留了所有的數據。

這是我希望我能得到工作的方法:使用jQuery工具

  • 的形式驗證完成。
  • 然後我需要通過jQuery/AJAX驗證成功後將變量提交給單獨的php文件。
  • 然後,當着陸頁開始加載時,我必須從提到的PHP文件中獲取該變量並在相關位置回顯它。

我想我實際上並不需要在頁面上用表單啓動一個會話,因爲jquery直接從輸入中獲取數據,而不是任何會話數據。因此,這裏是我的轉換值輸入:

<input type="hidden" id="conv" name="conv" value="90"> 

然後我的表單驗證:

$("#course-form-modal").validator().submit(function(e) { 
      // when data is valid 
      if (!e.isDefaultPrevented()) { 

        // this grabs the value from my form 
      var con_val = $("#conv").val(); 
      // and this sends it... 
      $.post(
       "../../usersession.php", 
       { data: con_val } 
      ); 

      } 

    }); 

然後我得在usersession.php ......在我發送的數據的代碼:

// As I'm just trying to echo what was sent to this page, via ajax, I shouldn't need to worry about starting/retrieving a SESSION yet... right? 
<?php $var_value = $_POST['data']; ?> 
<div id="results"> 
<?php echo $var_value ?>  
</div> 

//我可以擔心這半年後。現在,我只是想呼應我的結果ON USERSESSION.PHP //

最後,我有我的目標網頁上的代碼從usersession.php檢索數據:

session_start(); 
$var_value = $_SESSION['conv']; 
echo $var_value; 

我不能完全肯定這些代碼是否適合初學者,我更前端的傢伙......

CNC中

對,我敢肯定的代碼至少現在是正確的。由於某種原因,它仍然無法正常工作。目前我想知道WordPress是否會阻止我從我的JavaScript文件寫入usersessions.php(僅供參考,該文件路徑絕對在我的工作(不工作)示例中)?我知道WordPress在嘗試直接訪問文件時有時會拋出404錯誤。 另一個潛在的問題可能是第三方軟件vanillasoft。我在我的表單的action標記中鏈接了他們的腳本,能否以某種方式繞過/終止表單> usersession.php>然後登錄頁面之間的數據發送/接收?

在附註中,如果任何人有關於如何測試usersession.php是否正在接收數據的好主意,請讓我知道?我原來有這個代碼,但它沒有返回任何內容,如果我直接鏈接到文件後發送一些東西(如在只需將文件URL中粘貼到我的瀏覽器)它返回一個'0'...

if(isset($_POST['conv'])) { 
    session_start(); 
    $_SESSION['conv'] = $_POST[''conv'']; 
    echo "1"; 
} else { 
    echo "0"; 
} 
+0

永遠不要道歉的問題豐富的信息。我們越容易找到問題並給出答案。 – SuperMykEl

+0

歡呼我的男人,感激它...看到編輯上面@SuperMykEl –

+0

請確保你添加id attr給你隱藏的輸入 – SuperMykEl

回答

1

在輸入上設置你的ID。jQuery正在尋找ID,但你只需設置名稱。

<input type="hidden" name="conv" value="90"> 

應該是:

<input type="hidden" name="conv" id="conv" value="90"> 


編輯:

不能相信我沒趕上這更早。你的問題在下面一行的usersession.php中。

$_SESSION['conv'] = $_POST[''conv'']; 

你有POST引用錯誤。 它應該是:

$_SESSION['conv'] = $_POST['conv']; 


編輯(重:新的JS編輯)

在您的Java腳本的POST變量應該正是如此格式化:

{ name: "John", time: "2pm" } 

所以你的線應該是這樣的:

$.post(
     '../../usersession.php', 
     { 
      conv: $("#conv").val() 
     }, 
     function(data) 
     { 
      alert("Data Loaded: " + $("#conv").val()); 
     } 
); 
+1

要麼,要麼改變jquery選擇器到'$('input [name = conv]') – poncha

+0

感謝隊友,一個歡迎點,但不幸的是還沒有解決它...這是一個奇怪的? 我已更新JavaScript,我在表單提交時收到了所需值的提醒...但仍未獲得在着陸頁上顯示的值。我非常確定這個過程是在那裏的一半,因爲我們從表單獲取數據並將其提交給usersession.php ...但只是沒有從usersession.php獲取到目標頁面。你認爲用戶會話和着陸頁代碼看起來沒問題嗎? –

+0

歡呼@SuperMykEl ...對不起,只是回到你身邊。仍然沒有榮耀:-( 我已經更新了原來的問題,但我仍然沒有喜悅。如果您有足夠的時間投入視線,那麼在我的帖子的-EDIT部分有更多的洞察力。非常感謝...... –

相關問題