php - 如何获取 PHP 脚本以在 li 元素中生成 javascript

标签 php javascript

我的 PHP 脚本查询数据库并将行作为 li 元素返回到 jQuery 对话框中的 div。它通过在 PHP while 循环中构建一个数组来处理查询行响应来实现此目的。每个 li 元素都有一些数据、一个 HTML 按钮和一些在单击按钮时在该 li 元素上执行的 javascript。

如果我为每个 li 元素编写具有相同 id 的“错误 HTML”,则 javascript 会执行,但仅在第一个 li 元素上执行。当我为每个 li 元素编写具有唯一 id 的“良好 HTML”时,我无法执行 JavaScript。我研究并尝试了很多东西,但找不到任何如此复杂的东西来解决这个问题。我应该怎么办?这是精简的代码。问题似乎出在冗长的 $error_ListActives 行中,但我愿意接受建议。

$rowCount = 0;
while ($row = mysql_fetch_array($fetch)) {
    $storedStreetAddress = $row["streetAddress"];
    $storedCity = $row['city'];
    $error_NumberOfActives = "<li>Welcome back. You have . . .</li>";
    $errorMessages[0] = $error_NumberOfActives;
    $idMaker = "inactive" . $rowCount;
    $error_ListActives = "<li> $storedStreetAddress, $storedCity $idMaker
    <button type='button' id=$idMaker onclick='makeInactive()'>Pause this</button>
    <script type='text/javascript'>function makeInactive()
    //do stuff 
    {document.getElementById($idMaker).innerHTML='Inactive Completed';}
    </script> </li>";
    $errorMessages[] = $error_ListActives;
    $rowCount++;
    }
foreach( $errorMessages as $statusMessage ) {
    echo $statusMessage;
}

请具体说明,代码很有帮助。我没有很好地遵循这方面的一般说明,因为我是 PHP 新手。

最佳答案

这里最终会遇到很多问题,因为您是在 while 循环内编写 javascript 函数。这意味着您将获得同一函数的多个副本,并且只有最后一个才会真正触发!

要解决此问题,请为 makeInactive(id) 编写一个通用 JavaScript 函数,然后使用您正在处理的元素的 id 调用它。

在 php 循环之外:

<script type='text/javascript'>function makeInactive(id)
//do stuff 
{document.getElementById(id).innerHTML='Inactive Completed';}
</script>

然后将 php 循环更改为:

while ($row = mysql_fetch_array($fetch)) {
$storedStreetAddress = $row["streetAddress"];
$storedCity = $row['city'];
$error_NumberOfActives = "<li>Welcome back. You have . . .</li>";
$errorMessages[0] = $error_NumberOfActives;
$idMaker = "inactive" . $rowCount;
$error_ListActives = "<li> $storedStreetAddress, $storedCity $idMaker
<button type='button' id='$idMaker' onclick='makeInactive($idMaker)'>Pause this</button>
 </li>";
$errorMessages[] = $error_ListActives;
$rowCount++;
}

关于php - 如何获取 PHP 脚本以在 li 元素中生成 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16239074/

相关文章:

php - 获取除 first() 以外的特定行

javascript - 解析对象数组并填充表格 View 单元格 Swift

javascript - 预览文本区域内的 HTML 标记

javascript - 为什么在 JS 中写入剪贴板被认为是安全漏洞?

Javascript .load() 函数未执行

php - 将短语与格式匹配的 HTML 搜索

php - lampp 错误 403 - 禁止访问

php - 从 php 脚本写入 .log 文件时创建新行

php - 使用 SimpleXML 解析 OAI PMH 文件

javascript - 如何调整 Highcharts 轴标签中的行高/椭圆