【问题标题】:Set the value of a button to equal the answer of an SQL query将按钮的值设置为等于 SQL 查询的答案
【发布时间】:2013-06-06 08:37:32
【问题描述】:

我的代码有一个文本输入和提交按钮,返回时隐藏该表单并显示一个新按钮,该按钮有效。我遇到的问题是将按钮(或innerHTML)的值设置为我的查询中的答案(它总是只有一个)。我有以下代码:

echo '<form><button id="HCP_Btn" name="HCP_Btn" style="display:none"></button></form>';

    $HCP_num = $_POST['HCP_num'];
    $HCP_Query="SELECT * FROM HomeCareProviders WHERE Number='". $HCP_num."'";


    $HCP_result= mysql_query($HCP_Query) or die(mysql_error());

    if (mysql_num_rows($HCP_result)==0){
        echo 'Sorry there are no Home Care Providers with the number entered.';
    }
    //HCP_Btn.innerHTML='.$row["name"].';
    else {
        $row = mysql_fetch_array($HCP_result);
        echo '<script type="text/javascript">
                HCP_Btn.style.display="";
                document.form.HCP_Btn.innerHTML='.$row["name"].';       
              </script>';                           
    }

【问题讨论】:

  • 问题可能是因为你的按钮的 id 是 HCP_Btn 但在 JS 中你正在像 HCP_btn 一样访问它 - 问题可能很小 b.
  • @shadyyx 谢谢。但是还是不行!
  • 检查我的答案,我做了修改。

标签: php javascript sql button innerhtml


【解决方案1】:

你可以使用这个 Javascript 代码

echo '<script type="text/javascript"> document.getElementById("HCP_Btn").style.display=""; document.getElementById("HCP_Btn").innerHTML="'.$row["name"].'";
</script>';

【讨论】:

    【解决方案2】:

    先改成这样

    echo '<script type="text/javascript">
                    //HCP_Btn.style.display="";
                    document.form.HCP_btn.innerHTML=\''.$row["name"].'\';       
                  </script>';   
    

    第二次检查 $row["name"] 是否为您提供正确的值,最后检查您的 JavaScript 控制台是否有错误。

    还有 HCP_Btn.style.display="";没有这样的意思。

    【讨论】:

    • @Alessandro Gabrielli 该查询无论如何都会给出正确的结果。添加的斜线没有改变任何东西
    • 是的,并且还注释之前的行或更改它 document.getElementById('HCP_btn')
    • @Alessandro Gabrielli 按钮设置为 style=display:none 以隐藏它。然后单击另一个按钮后,我将其更改为通过 HCP_Btn.style.display=""; 行可见
    • 我看不到整个代码,但如果你在 document.form.HCP_btn.innerHTML=\''.$row["name"].'\';那么它必须有效,因为它对我有用
    • @user2363025 最后,如果您想通过名称引用它,请设置表单名称(name="form")。无论如何,我的提示是通过 id 引用对象,因为它是唯一的
    【解决方案3】:

    问题可能是因为你的按钮的 id 是 HCP_Btn 但在 JS 中你正在像 HCP_btn 一样访问它 - 问题可能很小 b强>。此外,您还缺少 innerHTML 值的引号。

    换行

    document.form.HCP_btn.innerHTML='.$row["name"].';
    

    document.form.HCP_Btn.innerHTML="'.$row["name"].'";
                      ^             ^                ^
        make the b uppercase    add quotes ----------^
    

    编辑:你试过 jQuery 吗?它是一种常用且广泛使用的 JavaScript 框架,它使 JS 编程变得如此容易(在你知道之后)......使用 jQuery,你可以这样做:

    echo '<script type="text/javascript">
    $("#HCP_Btn").css({"display":""}).html("'.$row['name'].'");
    </script>';
    

    【讨论】:

      【解决方案4】:

      您的 JavaScript 调用中的信息如何返回到 innerHTML 本身?它什么时候被调用和改变?我认为你应该先这样做。

      你有一个用户按下一个按钮。然后你使用 PHP(需要一个新的请求响应)访问数据库,使用 AJAX 或 JavaScript 你可以让它在客户端工作。

      我认为您混淆了服务器端和客户端问题。您至少应该需要在 onClick 事件上调用函数来切换按钮的显示并显示信息。该 onClick 事件应该调用一个 JavaScript 函数来处理更改。

      【讨论】:

      • @Loek Bergman 他们是两个不同的按钮。当一个被显示时,另一个被隐藏。我让它工作了。唯一的问题是没有使用 document.getElementById :) 当另一个(不同的按钮)被点击时它会被调用
      • 很高兴听到你解决了它。这是最重要的。感谢您对过程的澄清。我读得不够好。您不需要使用 JavaScript 是否正确?我看到的是没有函数调用的静态 JavaScript。 PHP 实际上正在完成这项工作。使用 PHP 将 JavaScript 直接添加到按钮可能会简化您的代码。总是有利于维护。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 2021-04-13
      • 2020-01-07
      • 1970-01-01
      • 2015-06-24
      相关资源
      最近更新 更多