0

我有一个 php 程序,它应该会提醒点击的链接。例如,我有一个链接hello,当我点击该链接时,javascript 应该会发出警报hello。没有空格它可以正常工作,但是当我有一个像hello world它这样的链接时,它不会提醒任何东西。这些词是从数据库中提取的。

我的代码如下

function gmail(val)
{
    alert(val);
}

对于 php

<?php
    $name="raj"; //this is just a dummy value
    $include "database_connectivity.php";
    $conn=odbc_connect($dsn,$database_username,$database_password);
    if(!$conn)
    {
        die('Could not connect to database.'.odbc_error());
    }
    $select="SELECT WHERE_TO_CHANGE FROM REQUEST_SEND_TABLE WHERE SENT_FROM ='$name'";
    $exe=odbc_exec($conn, $select);
    if(!$exe)
    {
        die("Could not execute query".odbc_error());
    }
    while($row_user=odbc_fetch_array($exe))
    {
        $show=$row_user['WHERE_TO_CHANGE'];
        echo "<input type='hidden' id='".$show."' value='".$show."'>";
        echo "<a href='#' id='check'  onClick='gmail(".$show.".value)' >".$show."            </a>";
        echo"<br>";
    }
    odbc_close($conn);
?>

谁能告诉我这里有什么问题?

4

4 回答 4

2
while($row_user=odbc_fetch_array($exe))
{
    $show=$row_user['WHERE_TO_CHANGE'];
    $show_nospace = str_replace(' ', '_', $show);
    echo "<input type='hidden' id='".$show_nospace."' value='".$show."'>";
    echo "<a href='#' id='check'  onClick='gmail(".$show_nospace.".value)' >".$show."            </a>";
    echo"<br>";
}

如果$show可以包含 ID 中不允许的其他字符,您也需要替换它们。value在属性中使用它时,您还需要转义任何引号。

于 2013-01-11T07:09:31.663 回答
1

在您的 onclick 事件中,将其更改为:

gmail(document.getElementById($show).value)

不过,在你的函数中这样做可能会更好,只需传入 id:

gmail($show)

这样,您可以在尝试调用 .value 之前先检查元素的存在。

于 2013-01-11T06:49:53.953 回答
1

有空格时使用引号

onClick="gmail('".$show_nospace.".value');"

见单引号('test test')

于 2013-01-11T07:16:08.763 回答
1

试试这个:

    echo "<input type='hidden' id='".$show."' value='".$show."'>";
    echo "<a href='#' id='check'  onClick='gmail(".$show.")' >".$show."</a>";

代替:

    echo "<input type='hidden' id='".$show."' value='".$show."'>";
    echo "<a href='#' id='check'  onClick='gmail(".$show.".value)' >".$show."</a>";
于 2013-01-11T07:16:18.230 回答