我想制作一个按钮,当点击它时,会显示一个简单的" X"在网站上,与按钮之前的位置完全相同。因此按钮将消失,并替换为" X"。
我的按钮代码很简单
<button onclick="myFunction()">1</button>
我该怎么做呢?它必须是PHP。
不能责怪你们贬低这个问题,因为它可能非常愚蠢,但我对这种语言并不熟悉,而且我正在努力学习。没有在这个网站上找到任何类似的问题。
编辑:我发现其他人的代码完全符合我的要求,但我无法确定他们在此过程中使用的确切行或代码。 http://www.javaist.com/blog/2013/04/29/tictactoe-in-php/comment-page-1/ 他们是怎么做到的?
答案 0 :(得分:1)
这在PHP中是不可能的。 PHP在服务器端执行,点击按钮之类的交互在客户端执行(通常由客户端执行)。你应该调查Javascript来做这些事情。
答案 1 :(得分:0)
您可以拥有一个正常的表单,无论是页面提交给自己还是另一个页面,它需要一个ID - id =“form” - 并且应该以您自己添加ID的按钮结束:
<button id="myButton" onclick="myFunction()">1</button>
</form>
和页面顶部的一段JavaScript就像这样。
此版本会在点击后禁用该按钮并提交页面 - 如果您不希望删除第二个document.getElementById...
和提交代码:
this.form.submit();
要完全摆脱按钮,您可以使用以下方式访问其样式属性:
document.getElementById('myButton').style.display = 'none';
但这不是一个令人放心的用户体验。
<script language="javascript">
function myFunction(){
document.getElementById('myButton').value = 'X';
document.getElementById('myButton').disabled = true;
alert('Submit'); // remove this line - just for demo purposes
this.form.submit();
}
</script>
要使按钮完全消失并被X替换,您需要将其放在<span>
或其他可以具有ID和innerHTML属性的标记中。然后你可以使用你的按钮周围的跨度 - 例如:
<span id="myButtonSpan"><button id="myButton" onclick="myFunction()">1</button></span>
并在您的JavaScript中使用它来与X:
交换范围的innerHTML
document.getElementById('myButton').style.display = 'none';
document.getElementById('myButtonSpan').innerHTML = 'X';
根据其他评论,这是JavaScript而不是PHP - 您可以在PHP中执行它,因此在通过使用由PHP设置的值的隐藏变量提交之后它的值为X,以便在页面提交时它将以'X'而不是'1'返回
在HTML页面的最顶部 - 现在必须有.php
而不是.html
扩展名,您可以放置:
<?php
if(isset($_POST['hidden_input'])){
$hidden_input_value = 'X';
}else{
$hidden_input_value = '1';
}
?>
你的隐藏输入会有:
<input type="hidden" name="hidden_input" value="<?php echo htmlspecialchars($hidden_input_value); ?>" />
或者你可以让整个按钮成为PHP的一小部分:
$button = '<button id="myButton" onclick="myFunction()">1</button>';
并使用与上述相同的PHP if(isset($_POST['hidden_input'])){...
代码,将$button = 'X';
的值设为<?php echo htmlspecialchars($button); ?>
,并使用 <input type="hidden" name="hidden_input_count" value="<?php echo htmlspecialchars($hidden_input_count); ?>" />
显示您想要按钮的位置。然后该功能仅用于提交页面。
同样,根据评论,这不是最“现代”的做事方式,至少可以说 - 我只是添加它来显示与解决方案的PHP“版本”和JavaScript的差异。
如果您保留按钮但只是更改其值,则可以使用另一个隐藏输入的值来计算它提交的次数,并将该值用于按钮,这样您就可以看到多少次它被点击了。这样可以节省您必须使用单个值的会话。
$hidden_input_count = intval($_POST['hidden_input_count']) + 1;
在你的PHP中你会有
if(document.getElementById('hidden_input').value == 'X'){
document.getElementById('myButton').style.display = 'none';
}
要使按钮不显示根据PHP设置的隐藏输入的值,您可以在JavaScript中获取隐藏输入的值 - 这种类型完成了使用隐藏输入交换JavaScript和PHP之间的值的循环会在JavaScript中出现类似的内容:
htmlspecialchars()
intval()
和quadMethods qMet =new quadMethods ();
qMet.numRoots (...);
用于帮助防止注入攻击,但如果您打算将这些值放入数据库中,则需要更多。
一些老式的蒸汽驱动代码为您提供了多种选择,但有时老歌可能是好东西。