0

当单击 AJAX 调用 PHP 计数器文件时,我正在与如何隔离特定的 MySQL id 作斗争。最初,我使用非 javascript HTLM 和回显 PHP 来创建一个块数组,每个块代表一个页面上的单个媒体文件。当用户单击块时,它会转到 PHP 计数器文件并播放媒体文件。它工作正常。尝试转换为 AJAX/javascript 运行 PHP 计数器文件时遇到问题。

问题似乎是:

  1. 未使用 onclick 注册正确的 ID。
  2. ID 没有被传递给名为 php 的 Ajax 文件,并且计数器没有更新。

主要块构建文件头中的javascript是:

<script type="text/javascript" src="jquery.js"></script>';

数百个块,每个块都有单独的 MySQL ID 被构建并显示在主页上。

添加 040913:PHP 开头为:

WHILE ($varX <= $varY) {
mysql_select_db($database_cms_test, $cms_test);
$query = "SELECT * FROM reference WHERE rank=$varRank";
$result = mysql_query($query) or die();
$row = mysql_fetch_array($result); ...

Ajax 部分从这里开始:

<script type="text/javascript">
function runCounter() {
    var currentID = 222; 
    $.get("counter5.php?id=222"); 
    alert("the current id is " + 222);
} 
</script>

<a title="Media File Name" href "#" onclick= "runCounter();" id="sprytrigger1">

回显之前的等效 Ajax 代码是:

echo '<script type="text/javascript">';
echo 'function runCounter() {';
echo ' var currentID = ';
printf ("%s", $row['id']);  
echo '; $.get("';
echo 'counter5.php?id=';
printf ("%s", $row['id']); 
echo '"); alert("the current id is " + ';
printf ("%s", $row['id']);  
echo ');} </script>';

echo '<a title="';
printf ("%s", $row['song_name']);
echo '" href "#';
echo '" onclick= "runCounter();';
echo '" id="sprytrigger';
echo $varRank;
echo '">';

在counter5.php文件中,主要的id请求代码为:

$id = mysql_real_escape_string($_GET['id']);

非常感谢您的意见/建议。

4

2 回答 2

0

你可以试试这个代码...

$scr = 'var currentID = ' . $row['id'] .
       '$.get("counter5.php?id='. $row['id'] .'")' .
       'alert("the current id is " + '. $row['id'] .')';

脚本

<script type="text/javascript">
  $(document).on('click', '#btn-id', function(){    
    runCounter();
  })

  function runCounter(){
    <?php echo $scr; ?>
  }
</script>

完整代码

<html>
  <title>Your title</title>
  <head>
    <?php

      // get the value/content of $row variable here...

      $scr = 'var currentID = ' . $row['id'] .
             '$.get("counter5.php?id='. $row['id'] .'")' .
             'alert("the current id is " + '. $row['id'] .')';
    ?>

    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script type="text/javascript">
      $(document).on('click', '#sprytrigger1', function(){    
        runCounter();
      })

      function runCounter(){
        <?php echo $scr; ?>
      }
    </script>

  </head>
  <body>

    <! -- your body here -->
    <a href="#" id="sprytrigger1">Click me!</a>

  </body>
</html>

我希望这会以某种方式帮助你。

于 2013-04-08T01:24:02.550 回答
-2

如果您可以退出 php 并再次进入,为什么还要使用 echo

?>your code here<?php
于 2013-04-08T00:57:05.993 回答