我试图将变量从js传递给PHP但没有成功。我已经阅读了所有类似的问题,但我没有运气。 $ id持续获得“52”的值,这意味着我没有收到我的帖子请求......
$(document).on("click", ".info-button", function () {
var myBookId = $(this).data('id');
$(".modal-body .modal-text").text(myBookId);
var variableToSend = myBookId;
$.ajax({
type: "POST",
url: "jsTophp.php",
data:{ id : variableToSend },
success: function(data){
console.log(data);
}
})
});
我的jsTophp.php文件:
<?php
if(isset($_POST['id'])){
$id = $_POST['id'];
} else {
$id = 52;
}
?>
这是我在movies.php文件中的html
include 'jsTophp.php';
<div class="modal-body">
<div class="row">
<p class="modal-text"></p>
<?php
$movie = mysqli_query($con, "SELECT * FROM movies WHERE id=$id");
$row = mysqli_fetch_array($movie);
echo '
<div class="col-md-4">
<div class="info-image">
<img class="img-responsive" src="'.$row['cover_path'].'" style="width:150px;height:200px;">
</div>
</div>
<div class="col-md-4">
<h4>Title: '.$row['title'].'</h4>
<h4>Director: '.$row['director'].'</h4>
<h4>Year: '.$row['d'].'</h4>
<h4>Description: '.$row['description'].'</h4>
<a href=""><img class="imdb-img" src="images/IMDb-Icon.png" style="width:80px;height:80px;"></a>
<a href=""><img class="imdb-img" src="images/youtube_logo.png" style="width:60px;height:40px;"></a>
</div>
'; ?>
</div>
</div>
答案 0 :(得分:0)
由于您的代码基本上是正确的,您确认您的请求成功,问题可能更多是一个误解:
您的ajax使用jsTophp.php
调用POST request
,但此文件似乎对您的$id
执行任何操作。
您希望在$id
中设置此movies.php
,因为您将文件包含在顶部。只是因为您可能之前调用jsTophp.php
并不意味着此脚本的执行结果是持久的,因此您可以在movies.php
中访问它。您只需要包含源代码,这意味着movies.php
看起来像这样:
<?php
if(isset($_POST['id'])){
$id = $_POST['id'];
} else {
$id = 52;
}
?>
<div class="modal-body">
<div class="row">
<p class="modal-text"></p>
...
您反而想做的是,在您的ajax调用中调用此脚本:
$.ajax({
type: "POST",
url: "movies.php",
data:{ id : variableToSend },
success: function(data){
console.log(data);
}
})
我知道,我的结论有很多假设,但你的问题,代码和评论都会得出这个结论。希望它是问题,它会帮助你。
答案 1 :(得分:0)
看看我的代码,它可以执行您想要的相同操作,并且按预期工作。
HTML
<a onclick="addToCart(this, 1)" href="#!">Click me</a><br>
JS
function addToCart(elem, pid){
var pid = pid;
$.ajax({
type: "POST",
url: "cart_add_product_ajax.php",
dataType: 'json',
data: {
pid: pid
},
success: function(res) {
if(res == 1){
location.reload();
}else{
//
}
}
});
}
PHP
if($_POST){
$pid = $_POST['pid'];
if(mysqli_query($con, "SELECT * FROM movies WHERE id=".$pid)) {
echo 1; //success
}else{
echo 0; //failure
}
}
另外要检查PHP代码中发生了什么(e.x.如果有任何错误),请使用chrome inspector&gt;网络(标签)。单击您从服务器获得的响应。例如,您可以键入PHP
var_dump($_POST['id'])
查看它在检查器中返回的内容。
希望它有所帮助。