javascript - 顺序jquery 'pages',第三帧给出引用错误

标签 javascript jquery function

我对 javascript/jquery 很陌生,一直在研究 w3schools 教程和 jquery 文档,并制作了一个页面,该页面将接受一些用户输入,然后通过 javascript 打印一些输出。我以为我可以修改它以按顺序工作,但是当第二页应该调用第三页时我得到

ReferenceError: $gp is not defined
[Break On This Error]   

$('#txtField2').load('getglycosites.php?q='+$gp+'r='+$('.glycotype').val());

如果有人有能够在 jquery 脚本中使用 $_get 变量的技巧,我将不胜感激。

页面代码:

首页(test.php):

<html>
  <head>
    <title>LeidenGlycoPeptide DataBase</title>
    <script src="jquery-1.9.1.min.js"></script>
  </head>
  <script>
    $(document).ready(function() {
      $('.glycoprotein').change(function() {
        $('#txtField').load('getglycopeptides.php?gp='+$('.glycoprotein').val());
      });
    });
  </script>
  <body>
    <h1>Welcome to the LeidenGlycoPeptide DataBase</h1>
    <?php
      $link = mysql_connect("localhost","reader","") or die (mysql_error());
      mysql_select_db('leidenGlycoPeptide') or die ();
      $query = 'select protein from glycoPeptide';
      $result = mysql_query($query);
      mysql_close($link);
    ?>
    <form>
      <p>Select glycopeptide to search for (interactive dialog)</p>
      <?php
         echo"<select class=\"glycoprotein\">";
         echo"<option value=\"\">select glycoprotein</option>";
         while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
           foreach ($line as $col_value) {
             echo"<option value=\"$col_value\">$col_value</option>";
           }
         } 
         echo"</select>";
       ?>
    </form>
    <br>
    <div id="txtField"></div>
  </body>
</html>

第二页(get糖肽.php):

<html>
  <head>
    <title>glyco</title>
    <script src="jquery-1.9.1.min.js"></script>
  </head>
  <script>
    $(document).ready(function() {
      $('.glycotype').change(function() {
        //NOTE $q/q are undefined
        $('#txtField2').load('getglycosites.php?q='+$gp+'r='+$('.glycotype').val());
      });
    });
  </script>
  <body>
    <?php
      // The next variable is the one I would like to use inside the jquery
      $gp=$_GET["gp"];
      $link = mysql_connect("localhost","reader","") or die (mysql_error());
      mysql_select_db("leidenGlycoPeptide",$link) or die();
      $query = "select glycoType from run,glycoPeptide where run.id = glycoPeptide.id and glycoPeptide.protein like '".$gp."'";
      $result = mysql_query($query);
    ?>
    <form>
      <?php
        echo "<select class=\"glycotype\">";
        echo "<option value=\"\">select glycosylation</option>";
        while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
        {
          foreach ($row as $col_value)
          {
            echo"<option value=\"$col_value\">$col_value</option>";
          }
        }
        echo "</select>";
        mysql_close($link);
      ?>
    </form>
    <br>
    <div id="txtField2"></div>
  </body>
</html>

第三页(getglusites.php):

<html>
   <head>
    <title>sites</title>
  </head>
  <body>
    <?php
      $gp=$_GET["gp"];
      $r=$_GET["r"];
      $link = mysql_connect("localhost","reader","") or die (mysql_error());
      mysql_select_db("leidenGlycoPeptide",$link) or die();
      $query = "select glycoSite from run,glycoPeptide where run.id = glycoPeptide.id and run.glycoType like '".$r."' and glycoPeptide.protein like '".$q."'";
      //echo $query;
      $result = mysql_query($query);
      echo "<select name=\"site\" onchange=\"foo\">";
      echo "<option value=\"\">select glycosite</option>";
      while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
      {
        foreach ($row as $col_value)
        {
          echo"<option value=\"$col_value\">$col_value</option>";
        }
      }
      echo "</select>";
      mysql_close($link);
    ?>
  </body>
</html>

PS:第三页目前只应该显示一个新的选择字段,但一旦我开始工作,它将成为一个大顺序序列的一部分。

提前致谢

最佳答案

我能够通过添加以下行(到 jquery 脚本)来“修复”此问题:

var gp = '<?php echo htmlspecialchars($_GET['gp']); ?>';

使总脚本成为第三页的一部分:

<script>
  var gp = '<?php echo htmlspecialchars($_GET['gp']); ?>';
  $(document).ready(function() {
    $('.glycotype').change(function() {
      $('#txtField2').load('getglycosites.php?q='+gp+'&r='+$('.glycotype').val());
    });
  });
</script>

关于javascript - 顺序jquery 'pages',第三帧给出引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14850138/

相关文章:

javascript - 如何将一个对象数组追加到一个已经存在的数组中?

javascript - 如何在自定义 react 钩子(Hook)中获取当前 react 组件名称?

javascript - 在动态加载内容期间取消 jquery 工具提示

jQuery - 翻转 : Size of flipped div is smaller than the front div

python - 我应该在哪里定义我在 __init__ 中使用的函数

javascript - 使用下拉菜单隐藏和显示元素

javascript - 随机定位图像

c - struct dirent **foo 到函数

javascript - jQuery-ui Effect/Animation延迟启动

sql - "Execute does not exist"写入 Postgres 函数时