1

私はjavascript/jqueryを初めて使用し、w3schoolsチュートリアルとjqueryドキュメントをいじって、ユーザー入力を受け入れるページを作成し、javascriptを介して出力を出力しました。これを変更して順次動作させることができると思いましたが、2番目のページが3番目のページを呼び出す必要がある場合に取得します

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>

2 番目のページ (getglycopeptides.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>

3 番目のページ (getglycosites.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: 3 ページ目は現在、新しい選択フィールドのみを表示することになっていますが、これが機能するようになると、大きなシーケンシャル シーケンスの一部になります。

前もって感謝します

4

1 に答える 1

0

次の行を(jqueryスクリプトに)追加することで、これを「修正」することができました。

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

スクリプト全体を3ページ目の一部にする:

<script>
  var gp = '<?php echo htmlspecialchars($_GET['gp']); ?>';
  $(document).ready(function() {
    $('.glycotype').change(function() {
      $('#txtField2').load('getglycosites.php?q='+gp+'&r='+$('.glycotype').val());
    });
  });
</script>
于 2013-02-13T12:30:50.157 に答える