【发布时间】:2015-09-21 17:01:03
【问题描述】:
这是我第三次尝试找到这个问题的答案,每次我都因为某种原因而被否决。所以我再试一次。我正在尝试通过 ajax 从表单中的隐藏输入发送数据。隐藏的输入从 php 脚本中获取其值。现在我似乎无法在接收页面上提取隐藏的输入值。现在,我发送的表单在 php 中生成和传播,触发将表单发送到其他页面的 ajax 也是如此。
当我尝试从接收页面上的表单调用信息时,它似乎没有从第一页接收数据。我认为这是我没有错误的原因,它不会显示数据,但它会触发位于 fetch 数组之前的 echo。
这是第一页的代码。除了表单发送部分之外,它在所有方面都适用于我正在尝试做的事情。我遗漏了很多内容,但 ajax 和表单部分都在里面。
<?php
$con=mysqli_connect("localhost","base","password","util");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT * FROM recipes";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result)) {
echo"
<script>
$(document).ready(function() {//start document ready
$('#" . $row['id'] ."').click(function (e){
e.preventDefault();
$.ajax({
type: 'POST',
url: 'http://localhost/pages/receivingpage.php',
data: $(\"f2\").serialize(),
success: function(d){
$(\"#content-disp\").html(d);
}
});
});
});//end document ready
</script>
<div id=\"covera\">
<div id=\"holder\" class=\"holder\">
<div id=\"disp\" class=\"disp\">
<div class=\"click diagonal panel\">
<div id=\"" . $row['id'] ."\" class=\"front\">
<form id=\"" . $row['recipe'] ."\" name=\"f2\">
<input type=\"hidden\" name=\"recipe\" value=\"" . $row['recipe'] ."\">
<h2>
" . $row['recipe'] ."<br></h2>
<img src=\"http://localhost/img/" . $row['image'] ."\" alt=\"Recipe Image\" style=\"width:150px;height:100px;\">
</form>
</div>
<div class=\"back\">
<div class=\"pad\">
<h2>" . $row['recipe'] ."</h2>
<p>" . $row['id'] ."</p>
<p>" . $row['id'] ."</p>
<p>Number of Servings " . $row['servings'] ."</p>
<p>Appx. Cooking Time: " . $row['cooking'] ." Minutes</p>
<p>Numer of Calories: " . $row['calories'] ."</p>
</div>
</div>
</div>
</div>
</div>
</div>";
}
mysqli_close($con);
?>
这里是接收页面。它加载但只显示回声。如果我在 SELECT 语句中删除 WHERE,它会显示所有数据库结果(不是所需的)。
<?php
$con=mysqli_connect("localhost","base","password","util");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$r = $_POST["f2"]['recipe'];
$sql = "SELECT * FROM recipes WHERE recipe ='".$r."'";
$result = mysqli_query($con,$sql);
echo " 2 ";
while ($row = mysqli_fetch_array($result)) {
echo " " . $row['recipe'] ." ";
}
mysqli_close($con);
?>
任何帮助将不胜感激。
【问题讨论】:
-
同样的问题请不要转载,清理原文以获得更好的帮助。
标签: javascript php ajax forms