【问题标题】:putting php codes on onclick event of a button将php代码放在按钮的onclick事件上
【发布时间】:2009-09-12 06:35:22
【问题描述】:
<input type="button" name="continue" id="continue" value="Continue" onclick="<?
if($_POST['rules']==null) {
echo "hello();";
}
elseif($_POST['rules']!=null) {
echo "myRedirect();";
}
?>" >
我有一个带有文本区域的表单。当用户在 textarea 为空时点击按钮时,它应该执行函数 hello(),如果 textarea 不为空,它应该执行函数 myRedirect()。函数 hello() 和 myRedirect() 生成不同的对话框。但它似乎不起作用。这段代码有什么问题?
【问题讨论】:
标签:
php
javascript
dialog
onclick
【解决方案1】:
这是不可能的。 JavaScript (onlick) 在客户端浏览器中执行,而 PHP 在您的服务器上执行。如果您确实需要执行 PHP 代码,您应该使用 AJAX 发送另一个请求,让您的服务器执行 PHP 部分。
【解决方案2】:
如果您只是检查框的值,则只需要 Javascript... 这应该可以正常工作:
<script type="text/javascript">
function check(obj_id){
var result = document.getElementById(obj_id).value;
if(result == ""){
is_null();
}else{
is_not_null();
}
}
function is_null(){
alert("null");
}
function is_not_null(){
alert("not null");
}
</script>
<input type="text" id="test" />
<button onclick="check('test')">Test</button>
将要检查的文本框的 id 传递给 check() 函数,它会查找是否在框中输入了任何内容。如果有,它会调用函数“is_null()”和“is_not_null()”,如果文本框中有内容。
【解决方案3】:
我认为它根本不起作用,因为您试图从 javascript 调用 PHP 代码。
换句话说,PHP 是一种服务器端脚本语言,您正在尝试执行需要提交才能执行的服务器端代码。
要实现这个功能,你可以简单地写下这段代码
if($_POST['rules']==null)
{
echo "hello();";
}
elseif($_POST['rules']!=null)
{
echo "myRedirect();";
}
在您的 PHP 页面顶部,您将得到您想要的。或将输入类型设为“提交”
【解决方案4】:
您可能需要回发到服务器来执行您想要在 onclick 事件中运行的任何内容。
另一种解决方法是使用AJAX。
【解决方案5】:
您是否混淆了客户端和服务器端?这就是你所追求的吗?
<?php
if($_POST['rules'] == null) {
echo "hello";
} else {
myRedirect();
}
?>
<input type="submit" name="continue" id="continue" value="Continue">
【解决方案6】:
<script>
function hello(){}
function myRedirect(){}
function ifnullz(el){
if($(el)!=0){
hello();
}else{
myRedirect();
}
}
function $(el){
document.getElementByID(el).length; //.value?? idk.. something like that.
}
</script>
<input onlcick="ifnullz('lolz');">
<textarea id="lolz"></ta>