我想要做的是从自动完成菜单(ui.item.label)中获取所选术语的值,将其存储在变量中并将该值发送到我的数据库。为此,我有另一个名为“proceed.php”的 php 文件,它将我们连接到数据库并将数据插入到表中。
但我似乎一直坚持将变量“$selected”从look传递到proceed,因为无论我做什么,浏览器都会显示$vari ,即这里传递的变量 - proceed1.php?var=$vari
背景故事 - 您可能会注意到我已将变量 vari 指定为 apple。然而,我只看到 $vari 作为浏览器上的输出,而不是苹果。
任何帮助将不胜感激。
非常感谢。
look.php
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
$(function() {
$( "#route" ).autocomplete({
source: 'search.php',
select: function( event , ui ) {
$selected=ui.item.label;}
});
});
$vari="apple";
</script>
</head>
<link rel="stylesheet" type="text/css" href="look.css" media="screen" />
<body>
<div class="ui-widget">
<label for="route">Router Name: </label>
<input id="route">
<br><br><br>
<a href='proceed1.php?var=$vari' id=btn2 class="btn">Proceed</a>
</div>
</body>
</html>
继续.php
<?php
$dbHost = 'localhost';
$dbUsername = 'root';
$dbPassword = '';
$dbName = 'searchrouters';
//connect with the database
$db = new mysqli($dbHost,$dbUsername,$dbPassword,$dbName);
//get search term
$vari = $_GET['var'];
echo $vari;
?>
更新:
谢谢,评论中提供的解决方案有效。但现在当我尝试获取变量 selected 的值时:
<?php
$vari=$_GET['selected'];
?>
然后将其传递到下一页:
<a href='proceed1.php?var=<?php echo $vari;?>' id=btn2 class="btn">Proceed</a>
我在浏览器上收到以下错误:
Undefined index: selected in C:\wamp\www\look.php on line 19
最佳答案
您需要在两个地方修改代码
<script>
$(function() {
$( "#route" ).autocomplete({
source: 'search.php',
select: function( event , ui ) {
$selected=ui.item.label;
$('#btn2').attr({'href':'proceed1.php?var='+$selected});
}
});
});
</script>
<?php
$vari="apple";
?>
和<a href="proceed1.php?term=<?php echo $vari;?>" id=btn2 class="btn">Proceed</a>
当您需要访问变量时,只需使用 $_GET['var']
无论您想在哪里使用带有 HTML 的 php,您都需要使用 <?php php code here ?>
这是一个demo
关于PHP GET ($_GET) 总是打印变量的名称而不是值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38370255/