Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.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
如何将jquery变量传递给php并显示它_Php_Javascript_Jquery - Fatal编程技术网

如何将jquery变量传递给php并显示它

如何将jquery变量传递给php并显示它,php,javascript,jquery,Php,Javascript,Jquery,将Jquery变量传递给php时出现问题 当我将变量id传递给B.php时,我得到了这个错误 "Notice: Undefined index: id1 in C:\xampp \htdocs\PhpProject1\OtherUsableItems\B.php on line 2 如何解决这个问题????这个A.php <html> <head> <script src="jquery.js"></script> <script>

将Jquery变量传递给php时出现问题

当我将变量id传递给
B.php
时,我得到了这个错误

"Notice: Undefined index: id1 in C:\xampp  \htdocs\PhpProject1\OtherUsableItems\B.php on line 2 
如何解决这个问题????这个
A.php

<html>
<head>
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
  var id = 23; 
$("#submit").click(function(){
 $.post("B.php",
 {
     id1: id,

  } );      
   });
  });
 </script>
 </head>
 <body>
 <form action="B.php" method="post" >
 <input type="submit" id="submit" name="submit"/> 
 </form>
 </body>
 </html>
  <?php
   $a =$_POST['id1'];
   echo $a ;
   ?>
$(document).ready(function(){
  var id = 23; 
  $("#submit").click(function(e){
     $.post("B.php", {id1: id} );     
     e.preventDefault();
   });
 });
我希望id变量传递到
B.php

<html>
<head>
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
  var id = 23; 
$("#submit").click(function(){
 $.post("B.php",
 {
     id1: id,

  } );      
   });
  });
 </script>
 </head>
 <body>
 <form action="B.php" method="post" >
 <input type="submit" id="submit" name="submit"/> 
 </form>
 </body>
 </html>
  <?php
   $a =$_POST['id1'];
   echo $a ;
   ?>
$(document).ready(function(){
  var id = 23; 
  $("#submit").click(function(e){
     $.post("B.php", {id1: id} );     
     e.preventDefault();
   });
 });
试试上面的代码。第一: JS不允许这样做:
{id1:id,}
(请参见末尾的逗号)。这是PHP的一个特性。实际上,根本不应该执行JS代码,因为这是一个语法错误(假设您将在浏览器的控制台中找到它)

另一个问题:必须防止表单的默认提交<代码>e.为此需要preventDefault()。如果没有它,ajax post将启动,表单提交将发生。并且您的表单没有名为id1的元素,假设第二个请求生成该错误消息

编辑: 这是通过常规提交发布一个值,所以浏览器被重定向到B.php

$(document).ready(function(){
      var id = 23; 
      $("#submit").click(function(){
              $(this).closest("form")
                     .append($("<input>", {"type":"hidden", "name":"id1", "value":id}));
       });
     });
$(文档).ready(函数(){
var-id=23;
$(“#提交”)。单击(函数(){
$(此).最近的(“表格”)
.append($(“”,{“type”:“hidden”,“name”:“id1”,“value”:id}));
});
});

尝试将输入类型更改为“按钮”,而不是“提交”

试试这个:

<script>
$(document).ready(function(){
   var id = 23; 
   $("#submit").click(function(e){
     e.preventDefault();
     $.post("B.php", {id1: id}, function(data){ //<---get the data from B.php
        console.log(data);   //<--------show it here
        alert(data);
     });      
   });
  });
 </script>

$(文档).ready(函数(){
var-id=23;
$(“#提交”)。单击(功能(e){
e、 预防默认值();

$.post(“B.php”,{id1:id},函数(数据){/问题是您的表单已提交,
$.post
用于ajax sumit。为此,您需要防止表单提交

<script>
     $(document).ready(function(){
        var id = 23; 
        $("#submit").click(function(){
           $.post("B.php",
           {
              id1: id,

           });  
           event.preventDefault() ;
        });    
    });
</script>

$(文档).ready(函数(){
var-id=23;
$(“#提交”)。单击(函数(){
$.post(“B.php”,
{
id1:id,
});  
event.preventDefault();
});    
});
在按钮单击功能中添加
event.preventDefault();
,尝试以下方法:

<html>
<head>
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
  var id = 23; 
$("#submit").click(function(){
 $.ajax(
    {
    url: "B.php",
    type: "POST",

    data: { id1: id},
    success: function (result) {
            alert('success');

    }
});     
   });
  });
 </script>
 </head>
 <body>
 <form  >
 <input type="button" id="submit" name="submit"/> 
 </form>
 </body>
 </html>

$(文档).ready(函数(){
var-id=23;
$(“#提交”)。单击(函数(){
$.ajax(
{
网址:“B.php”,
类型:“POST”,
数据:{id1:id},
成功:功能(结果){
警惕(“成功”);
}
});     
});
});
然后是B.php

<?php
   $a =isset($_POST['id1'])?$_POST['id1']:'not yet';
   echo $a ;
   ?>


使用隐藏字段设置要发送的值。因为您使用的是submit,所以整个表单都会被提交。隐藏字段也会被发送,并且可以使用隐藏字段的名称直接访问该字段。

php会抛出E_通知,因为POST数组的索引不存在。您可以切换错误报告有关注意事项,请参阅或检查索引是否存在:

if( isset($_POST['id1']) )  {
// do something
}
试试这个代码

 <html>
 <head>
 <script src="jquery.js"></script>
 <script>
 $(document).ready(function(){
 var id = 23; 
 $("#submit").click(function(){
 $('#id1').val(id);
 });
 });
</script>
 </head>
 <body>
 <form action="B.php" method="post" >
 <input type="submit" id="submit" name="submit"/> 
 <input type="hidden" name="id1" id="id1" value=""/>
</form>
</body>
</html>

$(文档).ready(函数(){
var-id=23;
$(“#提交”)。单击(函数(){
$('#id1').val(id);
});
});
在这里,您可以将'id'的值传递给B.php,并将以$\u POST['id1']

的形式访问,或者您可以这样使用submit()

和形式

<form id="myform" method="post">
<input type="submit" id="submit" name="submit" />
</form>

提交后您已经进入B.php,为什么不使用要发送的值创建隐藏的输入字段,然后在B.php上读取它呢?您会遇到错误
C:\xampp\htdocs\PhpProject1
。请尝试使用
http://localhost
我还想把这个变量保存到mysql数据库中,那么jquery在这个问题上有什么用呢?他不知道然后编辑jquery。他可以直接发送它,而不必担心如何发送它。通过添加e.preventDefault();错误已解决,但提交后应转到B.php并返回变量a的值。您是否在LocalHoster上检查此项错误在任何情况下都会显示光盘上文件的路径。如果OP试图从
file://..../page.php
,不会有任何错误,因为PHP根本不会被执行。@Abhishek我想你你现在必须使用回调函数。查看答案。通过添加e.preventDefault();错误已得到解决,但提交后应转到B.php并回显变量aSee更新答案的值。在那里,我只需找到一个表单,在其中添加一个新的隐藏字段和一个值。通过添加e.preventDefault();错误已解决,但提交后应转到B.php并回显变量aThen的值,您需要删除ajax,$.post用于ajax提交。这将不会重定向到创建xmlhttp请求的B.php