gpt4 book ai didi

javascript - 在 JavaScript 中使用 IF 处理复选框状态

转载 作者:行者123 更新时间:2023-12-01 01:24:10 24 4
gpt4 key购买 nike

我正在学习 PHP,并尝试根据复选框选中和取消选中打印一条消息。但是当我尝试选中复选框时,我只得到其他部分。这是 php 代码。让我知道哪里出了问题。

<html>
<body>
<script type="text/javascript">
function on_callPhp()
{
if(this.checked) {
document.write("<?php echo php_func_c();?>");
}
else
{
document.write("<?php echo php_func_uc();?>");
}
}
</script>

<input type="checkbox" name="hit_val" value="hit" onchange="on_callPhp()">

<?php
function php_func_c()
{
echo "CHECKED";
}

function php_func_uc()
{
echo "UNCHECKED";
}
?>
</body>
</html>

最佳答案

一些问题:

  • 名称 on_callPhp 似乎表明您认为 JavaScript 将在该函数中调用 PHP。但事实并非如此。当 PHP 运行时,它会执行 php_func_cphp_func_uc 以生成您想要的字符串。 PHP 完成运行后,页面将在浏览器中呈现。当用户选中该复选框时,不再发生与 PHP 的交互。

  • this 并不引用复选框。您可以将 this 作为函数参数传递。

  • 不要使用 document.write,当然也不要在事件处理程序中使用:在后一种情况下,它将完全清除页面内容。使用 console.log 代替进行调试。然后,当您准备好时,您可以做一些更有用的事情,例如显示一些其他页面内容。

这里是更正后的代码,尽管我保留了名称 on_callPhp 不变。使用不同的名称:

function on_callPhp(chkbox) // <-- notice the parameter
{
if(chkbox.checked) { // <-- check the argument, not `this`
console.log("<?php echo php_func_c();?>");
}
else
{
console.log("<?php echo php_func_uc();?>");
}
}

onchange 属性可以将 this 传递给函数:

<input type="checkbox" name="hit_val" value="hit" onchange="on_callPhp(this)">

关于javascript - 在 JavaScript 中使用 IF 处理复选框状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53969165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com