我找不到我的代码的问题。在第二页 (page2.php) 上,变量 $productid 不存在(为 null)。 更新:我忘了提及我有 session_start();在 page1.php 和 page2.php 的开头。
在第一页上,例如:page1.php我有这个:
$(function() {
$( "#product" ).autocomplete({
source: 'searchproduct.php',
select: function (event, ui) {
var lbl = ui.item.label;
var value = ui.item.value;
//store in session
$.ajax({
type: "POST",
url: 'page1.php',
data: { value : value },
success: function(data)
{
$('#productform input[name="jProductID"]').val(value);
$("#productform").submit();
}
});
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<?php
$productid = $_POST['jProductID'];
$_SESSION['Sproductid'] = $productid;
?>
<form method="post" action="page2.php" id="productform">
<input type="hidden" name="jProductID" value="productID" />
<label for="product">Produs: </label>
<input id="product" name="productid" id="productid">
<input type="submit" value="Adauga">
</form>
在第二页上,例如:page2.php我有这个:
$productid = $_SESSION['Sproductid'];
echo $productid;
注意:我对 php 和 javascript 都很陌生,所以任何建议都将不胜感激。
最佳答案
已解决,代码是正确的,我的代码的其他部分有错误,我发布的所有代码都在返回的 if(isset($_GET['...'])) {} 内错误的。谢谢您的回答。
只是为了确保我更换了
<?php
$productid = $_POST['jProductID'];
$_SESSION['Sproductid'] = $productid;
?>
与
<?php
$productid = $_POST['value'];
$_SESSION['Sproductid'] = $productid;
?>
我删除了
<input type="hidden" name="jProductID" value="productID" />
还有
$('#productform input[name="jProductID"]').val(value);
关于javascript - Jquery Autocomplete 小部件与同一页面上的 ajax post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33524049/