如何将jquery变量传递给php并显示它
将Jquery变量传递给php时出现问题 当我将变量id传递给如何将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>
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