无法使用jquery post()发布变量

时间:2013-05-03 00:45:41

标签: php javascript jquery post

我正在尝试将变量从模态表单传递到另一个页面。我在每个选择中使用id标签声明表单中的变量。

页面重新加载到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'];

2 个答案:

答案 0 :(得分:0)

目前尚不清楚您打算如何使用此代码传递模态表单中的值,但当前代码存在一些问题:

    变量赋值结束时
  1. ;缺失
  2. 使用val()从输入字段读取值,而不是获取它们的jquery对象
  3. 在post方法的数据对象中使用变量名而不是文字(“id”,“name”)
  4. 尝试此操作以查看变量是否在回调函数中传递和回显

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

答案 1 :(得分: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.

上的.$post()