2013-05-03 118 views
-1

我試圖將變量從模態窗體傳遞到另一個頁面。我從每個選擇中的id標籤聲明變量。無法使用jquery post發佈變量()

頁面重新加載到test.php,但是沒有變量可以被回顯。

的JavaScript

var id = $("#id"), 
    name = $("#name") 

$.post("jqtest/test.php", { device_id: "id", device_name: "name" }); 
load('jqtest/test.php'); 

test.php的

echo $_POST['device_name']; 
echo $_POST['device_id']; 
+0

瞭解更多關於.$post()這是一個混亂,糾結的PHP和JS混亂。你能分開東西嗎?當然,所有這些都不在一個JS腳本中。 – 2013-05-03 00:47:41

+0

_「頁面重新加載到test.php」_。你確定你瞭解AJAX的工作原理嗎? – elclanrs 2013-05-03 00:48:00

+0

根據所提供的示例,您對Web的工作原理有着嚴重的誤解。我鼓勵您在繼續閱讀之前瞭解客戶端 - 服務器模型,並更熟悉PHP和JavaScript之間的區別。 – 2013-05-03 00:55:35

回答

0

目前尚不清楚你是如何計劃使用這些代碼從您的模式窗體傳遞值,但有幾個問題與您當前的代碼:

  1. ;缺少在變量賦值
  2. 的端部從輸入字段POST方法,而不是文字(「ID」,「姓名」)

的數據對象使用val(),而不是讓他們的jQuery的對象

  • 使用變量名個
  • 讀值試試這個看該變量傳遞和迴盪在回調函數

    var id = $("#id").val(), 
        name = $("#name").val(); 
    
    $.post("jqtest/test.php", 
         { device_id: id, device_name: name }, 
         function(data){ 
          alert(data); 
         } 
    ); 
    
  • 0

    它看起來像有很多不對的......它看起來就像你正在使用echo $_POST['device_name'];echo $_POST['device_id'];只是爲了確保您的AJAX工作。如果是這種情況,則不需要使用.load();。您還發送了$("#id")$("#name")的jQuery對象,而不是這些表單元素中的值。後來,在你的.post請求中,你在引號中有相同的變量,這是發送字符串「id」和「name」。再次 - 可能不是你要找的。

    你的問題有點令人費解,但我會盡我所能來回答。試試這個JS:

    var id = $("#id").val(), 
        name = $("#name").val(); 
    
    $.post("jqtest/test.php", { device_id: id, device_name: name }, function(response) { 
        console.log(response); 
    }); 
    

    在你的PHP文件,使用此代碼:

    echo $_POST['device_name']; 
    echo $_POST['device_id']; 
    

    你會看到你的變量在瀏覽器的JS控制檯顯示出來。通過這個腳本,你已經通過POST發送了兩個變量到test.php,並且test.php會回顯結果。添加到$ .post請求的回調函數將在JavaScript控制檯中顯示來自test.php的輸出。在jQuery docs.