2016-05-16 56 views
0

我正在設置一個自定義表單,用於我的wordpress網站。我想要做的是獲取該提交的AUTO_INCREMENT ID,並在提交表單時將其傳遞給Javascript cookie。目前這個ID正在工作,但是因爲直到表單提交之後ID才被抓取,所以我無法弄清楚在表單提交後我如何能夠立即將該變量傳遞到cookie中(目前我必須提交在創建ID前創建了兩次形式的表單,並且由於它是後面的提交,所以它的一個數字低於它的值)。如何在提交表單時將PHP變量傳遞給Javascript Cookie?

這裏是我目前:

<?php 
if(isset($_POST["submit"])) { 
    $name = $_POST['full_name']; 
    $city = $_POST['city']; 
    $state = $_POST['state']; 
    $email = $_POST['email']; 

    $wpdb->insert(
     'reps', 
     array(
      'name' => stripslashes($name), 
      'city' => stripslashes($city), 
      'state' => stripslashes($state), 
      'email' => stripslashes($email) 
     ) 
    ); 

    $lastid = $wpdb->insert_id; 
} 
?> 
<script> 
$('#dealer-form').submit(function() { 
    var repID = '<?php echo $lastid ?>'; 
    setCookie('ID', repID); 
}); 
</script> 

正如我提到的這個代碼工作的第二次提交(自變量對首次提交沒有值),而ID爲1號的背後,因爲它是在重新分配變量值之前抓取先前提交的ID。

+0

''JSON'字符串化()''數據attributes' 。此外,您可以在頁面上有一個iframe,用於保存「ID」的計數器。這樣你可以從那裏引用它。 –

回答

1

PHP是一種服務器端腳本語言,在數據發送到瀏覽器之前執行。只要瀏覽器遇到腳本,就會執行JavaScript,即客戶端腳本語言。

您的方法是忘記前後臺之間的這種分離。

要完成你想要做的,只是輸出setCookie叫什麼,當您提交表單在PHP

<?php 
    if(isset($_POST["submit"])) { 
     $name = $_POST['full_name']; 
     $city = $_POST['city']; 
     $state = $_POST['state']; 
     $email = $_POST['email']; 

     $wpdb->insert(
      'reps', 
      array(
       'name' => stripslashes($name), 
       'city' => stripslashes($city), 
       'state' => stripslashes($state), 
       'email' => stripslashes($email) 
      ) 
     ); 

     $lastid = $wpdb->insert_id; 

     printf('<script>setCookie("ID", %d);</script>', $lastid); 
    } 
?> 
+0

這工作完美,謝謝! – user13286

+0

爲什麼不使用PHP的'setcookie()'函數來設置它呢? – Barmar