Javascript 如何将jQuery中的变量发布到PHP文件?
我意识到以前也有类似问题的其他答案,但是我试图在表中创建一个唯一的链接集合,并且似乎无法获取要发布到php页面的标记id 见下文:Javascript 如何将jQuery中的变量发布到PHP文件?,javascript,php,jquery,Javascript,Php,Jquery,我意识到以前也有类似问题的其他答案,但是我试图在表中创建一个唯一的链接集合,并且似乎无法获取要发布到php页面的标记id 见下文: echo("<p>To reserve a book, click the Book Title.</p>"); echo "<table class='formfield' border='1'> <tr> <th&
echo("<p>To reserve a book, click the Book Title.</p>");
echo "<table class='formfield' border='1'>
<tr>
<th>Book ID</th>
<th>ISBN</th>
<th>Book Title</th>
<th>Author</th>
<th>Edition</th>
<th>Year</th>
<th>Category</th>
<th>Reserved</th>
</tr>";
$lnkCount = 0;
while($row = mysqli_fetch_array($sql)) {
$lnkCount++;
echo "<tr>";
echo "<td>" . $row['bookID'] . "</td>";
echo "<td>" . $row['ISBN'] . "</td>";
echo "<td><a class='anchor' id='$lnkCount' href='reservation.php'>" . $row['BookTitle'] . "</a></td>";
echo "<td>" . $row['Author'] . "</td>";
echo "<td>" . $row['Edition'] . "</td>";
echo "<td>" . $row['Year'] . "</td>";
echo "<td>" . $row['CategoryDept'] . "</td>";
echo "<td>" . ($row['Reserved'] ? 'Yes' : 'No') . "</td>";
/*echo "<td><input id='$lnkCount' type='button' value='Reserve Now' onClick='post();'></td>";*/ // display yes/no rather than boolean equivalent...
}
echo "</table>";
echo(要预订一本书,请单击书名。”;
回声“
书号
ISBN
书名
作者
版本
年
类别
含蓄的
";
$lnkCount=0;
while($row=mysqli\u fetch\u数组($sql)){
$lnkCount++;
回声“;
回显“$row['bookID']”;
回显“$row['ISBN']”;
回声“;
回显“$row['Author']”;
回显“$row['Edition']”;
回显“$行['年]”;
回显“$row['CategoryDept']”;
回显“($row['Reserved']?'Yes':'No');
/*echo”“;*///显示是/否,而不是布尔等效值。。。
}
回声“;
然后我的jQuery:
<script lang="JavaScript" type="text/javascript">
$(".anchor").click(function() {
var clkID = $(this).attr("id");
alert(clkID);
$.post('reservation.php'), {clkID:postid}, function(){/*do something*/};
});
</script>
$(“.anchor”)。单击(函数(){
var clkID=$(this.attr(“id”);
警惕(clkID);
$.post('reservation.php'),{clkID:postid},function(){/*do something*/};
});
最后是我的php页面,这并不是真正相关的,但我会在我的问题中发布清晰的内容
$id = $_POST['postid'];
echo("<p>Value detected was: $id</p>"); // this is just to test...
$id=$\u POST['postid'];
回波(检测到的值为:$id);//这只是为了测试。。。
现在,当我单击其中一个链接时,页面会以我单击的链接的正确id发出警报。但是,当它连接到php页面(reservations.php)时,会出现以下错误:
注意:未定义索引:在第41行的C:\xampp\htdocs\webDevProj\reservation.php中发布
检测到的值为:
我相信你们中的>=1会知道我对jQuery不是很有经验,所以如果你们理解我的问题,并且认为有一种更简单的方法来解决这个问题,我将非常感谢你们的意见
p、 这是大学作业:)
编辑#1--
看不出这个问题与报告中回答的问题有什么关联。它涉及jQuery.post方法。提供的“解决方案”对“未定义索引”在php中的含义给出了各种定义,但对我的问题仍然没有任何意义
编辑#2--
因此,我在JS代码中更改了变量和键,没有做任何更改。我对那一瞬间的大笑充满了希望-我想我会继续寻找…你在
$\u POST
中找错了键。在AJAX调用中,您将参数设置为名称为clkId
。因此:
$id = $_POST['postid'];
应该是
$id = $_POST['clkId'];
将这些更改添加到PHP脚本中 发件人: 致: 或编辑JS请求:
$.post('reservation.php'), {postid:clkID}, function(){/*do something*/};
变量名称有问题 请按以下代码编写: 在JS中:
var clkID = $(this).attr("id");
$.post('reservation.php'), {postid:clkID}, function(){/*do something*/};
因为您的数据存储在clkID
中。
蚂蚁然后呼叫控制器
$id = $_POST['postid'];
如果您更改了PHP脚本中的变量,那么您可以得到空数据,因为javascript中的
postid
中没有定义数据。在javascript中,您将检索到的值存储在clkID中,因此您的jQuery需要
$.post('reservation.php'), {postid:clkID}, function(){/*do something*/};
它将把这个变量传递给名为postid的PHP。$.post(“reservation.PHP,{postid:clkID})
.完成(功能(数据){
警报(“数据加载:”+数据);
});代码>
在php页面中:
$id=$\u POST['postid'];
返回$id代码>//只是测试一下,看看您是否在done函数的数据中得到了它
{postid:clkID}
-这意味着变量的名称应该放在第一位,然后您可以发送变量的值
//供您在PHP中参考使用:-$id=$\u POST['clkID'];这不是打字错误吗?应该是VTC,不是吗?请检查您对$.post()的使用情况。您只向函数传递了一个参数。Patrick Q-yeah添加了一个函数“.done”仍然没有乐趣!很多论点不是强制性的吗?我的意思是,我所寻找的只是一个post请求,而不是像插入HTML或其他任何东西那样的回报,所以我没有看到point@shakalakaboom请稍等片刻,看看你的代码。然后看看函数应该如何调用。如果不将posted传递给函数,您希望如何发布posted?实际上应该在JS中进行更改,因为该值被分配给clkID
变量。更改PHP将删除通知,但不会有任何价值。是的,在JS中更改了它们,但仍然没有成功!相同的错误“未定义索引:posted”您好,谢谢您的快速回复。我意识到我犯了一个错误,但不幸的是,不正确的钥匙似乎不是问题所在。事实上,这可能是不正确的,因为我已经玩这个该死的东西太久了!!
$id = $_POST['postid'];
$.post('reservation.php'), {postid:clkID}, function(){/*do something*/};