2013-05-03 112 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.