Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法使用jquery post()发布变量_Php_Javascript_Jquery_Post - Fatal编程技术网

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

Php 无法使用jquery post()发布变量,php,javascript,jquery,post,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['dev

我试图将变量从一个模态表单传递到另一个页面。我从表单中声明变量,并在每个选择中使用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'];

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

  • 使用
    val()
    从输入字段中读取值,而不是获取它们的jquery对象
  • 在post方法的数据对象中使用变量名,而不是文字(“id”、“名称”)
  • 尝试此操作以查看在回调函数中传递和回显变量

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

    看起来这有很多问题。。。看起来您正在使用
    echo$\u POST['device\u name']
    echo$\u POST['device\u 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()
    的信息这是一堆杂乱无章的PHP和JS。你能把东西分开吗?当然,所有这些都不在一个JS脚本中,“页面重新加载到test.php”。你确定你了解AJAX是如何工作的吗?根据提供的示例,你对web是如何工作的存在严重误解。我鼓励您阅读客户机-服务器模型,并在继续之前更加熟悉PHP和javascript之间的区别。PHP位于不同的页面上,我理解两者之间的差异,但我还不太熟悉jscript。也不,它不在同一个页面中…@elclanrs我对jquery post()函数有基本的了解。页面是从load('jqtest/test.php')加载的;