【问题标题】:PHP GET ($_GET) always prints name of variable and not valuePHP GET ($_GET) 总是打印变量名而不是值
【发布时间】:2016-07-14 09:17:56
【问题描述】:

我要做的是从自动完成菜单 (ui.item.label) 中获取所选术语的值,将其存储在变量中并将该值发送到我的数据库。为此,我有另一个名为“proceed.php”的 php 文件,它将我们连接到数据库并将数据插入到表中。

但我似乎无法将变量“$selected”从 look 传递给 proceed,因为无论我做什么,浏览器都会显示 $vari ,也就是这里传递的变量——proceed1.php?var=$vari

Backstory - 你可能注意到我已经将变量 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>

proceed.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;
?>

更新:

谢谢,cmets 中提供的解决方案有效。但是现在当我试图将变量 selected 的值设为:

 <?php
  $vari=$_GET['selected'];
 ?>

然后将其传递到下一页:

<a href='proceed1.php?var=<?php echo $vari;?>' id=btn2 class="btn">Proceed</a>

我在浏览器上收到以下错误:

未定义索引:在第 19 行的 C:\wamp\www\look.php 中选择

【问题讨论】:

  • 这里的term 是什么?将term 替换为var 会有所帮助。
  • 你在 jquery 中声明了 php 变量
  • 对不起term。它应该是 var 本身

标签: php html mysql variables get


【解决方案1】:

你需要在两个地方修改你的代码

<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";
?>

和&lt;a href="proceed1.php?term=&lt;?php echo $vari;?&gt;" id=btn2 class="btn"&gt;Proceed&lt;/a&gt;

当您需要访问变量时,只需使用$_GET['var'] 无论您想在哪里使用带有 HTML 的 php,您都需要使用 &lt;?php php code here ?&gt;

这是demo

【讨论】:

  • 嘿,你介意看看更新的问题吗?谢谢
  • 您需要在 $_GET['selected'] 中使用$selected 吗?
  • 我先这样做了。但是错误仍然存​​在,说 Undefined index: $selected
  • 所以基本上你需要在点击继续按钮后将自动完成选择的选项作为查询字符串发送,对吗?
  • 是的,这正是我需要做的。
【解决方案2】:

你不能在 jquery 中声明 php 变量。

试试这个

<script>
  $(function() {
    $( "#route" ).autocomplete({
      source: 'search.php',
      select: function( event , ui ) {
      $selected=ui.item.label;}   
    });
  });
  </script>
<?php
  $vari="apple";
?>

和

<a href="proceed1.php?term=<?php echo $vari;?>" id=btn2 class="btn">Proceed</a>

【讨论】:

    【解决方案3】:

    你应该在这里改变从script标签中删除$vari="apple";并在php标签中使用它

    <?php $vari="apple"; ?>
    

    并像这样获取变量$vari

    <a href="proceed1.php?term=<?php echo $vari;?>" id=btn2 class="btn">Proceed</a>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-23
      • 2014-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      相关资源
      最近更新 更多