2012-04-16 12 views
1

私はこれを数日間苦労しています。これは動作しますが、正しい変数をページ(testMap.php)に渡しません。私は自分のDBからデータを使用し、リンク上でホバーするとURL内の正しい変数が表示されますが、何らかの理由でjqueryは常にループ内の最初の変数を取得しています。助言がありますか?実際Jqueryがページに間違った値を渡します

<?php 
    $myname = $_SESSION['username']; 
    global $database; 
    $stmt = $database->connection->query("SELECT * FROM ".TBL_FLIGHTS." WHERE username='$myname'"); 

     while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){ 
      $date  = $row['date']; 
        $starting = $row['starting']; 
        $ending  = $row['ending']; 
        $route  = $row['route']; 
        echo "<a class=\"route\" href=\"start=$starting&end=$ending\"><p class=\"pBlue\">$date - $starting - $ending - $route</p></a>"; 
        ?> 
     <div id="start" style="visibility:hidden"><?php echo $starting; ?></div> 
     <div id="end" style="visibility:hidden"><?php echo $ending; ?></div> 
     <? 
    } 

    ?> 


<script type="text/javascript"> 
$(document).ready(function() { 
    var start = $('#start').text(); 
    var end = $('#end').text(); 

    $(function() { 
     $(".route").click(function(evt) { 
     $("#mymap_canvas").load("testMap.php?start="+start+"&end="+end) 
     evt.preventDefault(); 
     }) 
    }) 

}); 
</script> 
+1

IDは一意である必要があります。そのループはIDの開始と終了を持つ複数の要素を作成していることを示していますが、これは間違っています。 –

答えて

0

。クリックイベント内の開始値と終了値を取得し、クリックされたルートの近くにある開始値と終了値を選択する必要があります。おそらく何をしたい

$(".route").click(function(evt) { 
    var start = $(this).siblings(".start").text(); 
    var end = $(this).siblings(".end").text(); 
    $("#mymap_canvas").load("testMap.php?start="+start+"&end="+end) 
    evt.preventDefault(); 
}); // I believe you are missing a semicolon here and at the end, too 

しかし、私は、あなたが本当にただのPHPを経由しているのhrefを構築できる何かが欠けている(すでに完全なパスとクエリ文字列と、それは完全に除いてあるように)としていない限り、

$(".route").click(function(evt) { 
    // Load the href of the route anchor into 'mymap_canvas' 
    $("#mymap_canvas").load($(this).attr("href")); 
    event.preventDefault(); 
    return false; // Prevent the normal click behavior 
}); 

これ以上の隠れた開始と終了はありません!ただし、元のアンカータグを次のように更新してください。

<a class=\"route\" href=\"testMap.php?start={$starting}&end={$ending}\">...</a> 
0
<?php 
    $myname = $_SESSION['username']; 
    global $database; 
    $stmt = $database->connection->query("SELECT * FROM ".TBL_FLIGHTS." WHERE username='$myname'"); 
$i=1; 
     while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){ 
      $date  = $row['date']; 
        $starting = $row['starting']; 
        $ending  = $row['ending']; 
        $route  = $row['route']; 
        echo "<a class=\"route\" href=\"start=$starting&end=$ending\"><p class=\"pBlue\">$date - $starting - $ending - $route</p></a>"; 
        ?> 
     <div class="start<?php echo $i; ?>" style="visibility:hidden"><?php echo $starting; ?></div> 
     <div class="end<?php echo $i ?>" style="visibility:hidden"><?php echo $ending; ?></div> 
     <? 
    $i++; } 

    ?> 


<script type="text/javascript"> 
$(document).ready(function() { 
    var start = $('.start1').text(); 
    var end = $('.end<?php echo $i; ?>').text(); 

    $(function() { 
     $(".route").click(function(evt) { 
     $("#mymap_canvas").load("testMap.php?start="+start+"&end="+end) 
     evt.preventDefault(); 
     }) 
    }) 

}); 
</script> 
+0

これは、変数$にすべての値を開始するようにします。$ starting = khiiklaskord開始は、たとえばkhiiと同じにする必要があります。助けてくれてありがとう:) – azpilot

+0

あなたが正確にほしいものはほんの少しだけお待ちください –

+0

私はそのクエリからの結果を表示するために$が必要であり、$ endingも結果を表示する必要があります。起こっていることは、jqueryはデータベースクエリの最初の結果のみを渡していることです。 – azpilot

関連する問題