-1

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

页面重新加载到 test.php,但是不能回显任何变量。

javascript

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

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

测试.php

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

2 回答 2

0

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

  1. ;在变量赋值结束时丢失
  2. val()使用而不是获取它们的 jquery 对象从输入字段中读取值
  3. 在 post 方法的数据对象中使用变量名而不是文字(“id”、“name”)

试试这个看看变量在回调函数中被传递和回显

var id = $( "#id" ).val(),
    name = $( "#name" ).val();

$.post("jqtest/test.php", 
       { device_id: id, device_name: name },
       function(data){
            alert(data);
        }
);
于 2013-05-03T01:33:20.977 回答
0

看起来这有很多问题......看起来您正在使用echo $_POST['device_name'];并且echo $_POST['device_id'];只是为了确保您的 AJAX 正常工作。如果是这种情况,您不需要使用.load();. 您还将发送 jQuery 对象,$( "#id" )$( "#name" )不是这些表单元素中的值。稍后,在您的 .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 的输出。了解更多关于.$post()jQuery文档的信息。

于 2013-05-03T02:36:57.483 回答