使用 MySql Fetch Array 和 Ajax 创建可点击的链接

发布于 2024-11-16 08:40:03 字数 964 浏览 2 评论 0原文

我试图在 while 循环内使用来自 mysql_fetch_array 的特定数字结果来执行 Javascript 函数(Ajax)。我的 php 代码的基本片段如下:

while ($data = mysql_fetch_array($result)) 
{
$link = $data['id']; //example results will be 12345
echo '<span id="val" onclick="goto()">'.$link.'</span>'; //lists 12345, and makes each clickable
}

我的 Javascript 代码的一部分如下:

function goto(str)
{
   Ajax...
   var idval = document.getElementById('val').innerHTML; //grabs 1,2,3,4, or 5 based on which number was clicked
   Ajax...
}

我在这里尝试做的是从 MySql 查询多条记录,使用 while 循环列出结果,使每个结果可点击,然后传递内部 html 到 Ajax 的变量。

我的问题是,当我单击 while 循环列表中的任何结果时,我仅传递 mysql 获取数组的第一个结果。例如,while 循环将列出 12345。当我尝试单击 3 时,我得到 1 作为内部 html;当我尝试单击 5 时,我得到 1 作为内部 html;等等...它总是得到第一个结果,即 1。

我尝试内爆和爆炸 mysql 获取数组,但是内部 html 总是最终成为数组结果的第一行。我需要以某种方式分解数组,以便每一行都是独立的,不仅在视觉上,而且以编程方式,这样我就可以使用 getElementById.innerHTML 获取它。

我真的很感谢任何人的帮助。您的建议和希望的答案将真正帮助我的 php 项目变得更加有用。

I am trying to use specific numeric results from a mysql_fetch_array within a while loop to execute a Javascript function (Ajax). A basic snippet of my php code is as follows:

while ($data = mysql_fetch_array($result)) 
{
$link = $data['id']; //example results will be 12345
echo '<span id="val" onclick="goto()">'.$link.'</span>'; //lists 12345, and makes each clickable
}

Part of my Javascript code is as follows:

function goto(str)
{
   Ajax...
   var idval = document.getElementById('val').innerHTML; //grabs 1,2,3,4, or 5 based on which number was clicked
   Ajax...
}

What I am trying to do here is query multiple records from MySql, list the results using a while loop, make each result clickable, and pass the inner html to a variable for Ajax.

My problem is that when I click any of the results from the while loop list, I pass only the first result of the mysql fetch array. For example, the while loop will list 12345. when I try clicking 3, I get 1 as the inner html; when I try clicking 5, I get 1 as the inner html; and so on... It always gets the first result, which is 1.

I tried imploding and exploding the mysql fetch array, however the inner html always ends up being the first row of the array results. I need to break up the array somehow, so that each row is independent, not just visually, but programmatically so I can get it using getElementById.innerHTML.

I really appreciate anyones help. Your suggestions and hopefully an answer will really help make my php projects much more useful.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冷︶言冷语的世界 2024-11-23 08:40:03

首先,将您的 php 脚本更改为如下所示:

while ($data = mysql_fetch_array($result)) 
{
    $link = $data['id']; //example results will be 12345
    echo '<span id="val'.$link.'" onclick="goto('.$link.')">'.$link.'</span>';
}

然后,使用以下 javascript 代码:

function goto(link)
{
    Ajax...
    var idval = document.getElementById('val'+link).innerHTML; 
    Ajax...
}

但我不确定 str 在您的 javascript 代码中意味着什么以及为什么使用函数 goto需要 1 个参数 (str),而调用时不带参数 (onclick="goto()")。

First, change your php script to look like this:

while ($data = mysql_fetch_array($result)) 
{
    $link = $data['id']; //example results will be 12345
    echo '<span id="val'.$link.'" onclick="goto('.$link.')">'.$link.'</span>';
}

Then, use the following javascript code:

function goto(link)
{
    Ajax...
    var idval = document.getElementById('val'+link).innerHTML; 
    Ajax...
}

But I am not sure about what str means in your javascript code and why function goto takes 1 arguments (str) while is called with no arguments (onclick="goto()").

方觉久 2024-11-23 08:40:03

您的问题是您在 span 元素中使用 id="val" 。所以你只能得到第一个元素。所以你最终总是得到第一个跨度的内部 html。

最简单的解决方案是将 id 值作为参数传递给 goto 函数调用。

更新:您可以修改您的功能,如下所示:

function goto(link)
{
    Ajax...
    var idval = link;
    Ajax...
}

Your problem is that you use id="val" in your span elements. So you could only get the first element. So you end up getting first span's inner html all the time.

The simplest solution is to pass id value as an argument to your goto function call.

Update: you may modifier your function as below:

function goto(link)
{
    Ajax...
    var idval = link;
    Ajax...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文