onClick监听器不调用JavaScript

时间:2014-05-13 10:25:31

标签: php html ajax

我有一个onClick侦听器设置来触发一个AJAX调用,该调用又触发一个PHP脚本。但是,它似乎无法识别点击。有什么想法吗?

的index.html

<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
function doThings(){
    document.write("Test");
    $.ajax( {
    type: "GET",
    url: "script.php",
    success:function(data){
    if(data==0)
        $("#imgId").attr("src","lightbulb_0.png");
    else
        $("#imgId").attr("src","lightbulb_1.png");
    }
    });
}
</script>
</head>
<body>
<img id="imgId" src="lightbulb_0" onClick='doThings();'/>
</body>
</html>

的script.php

<?php
function toggle()
{
        $filename = "brightness";
        $otherDirectory="/sys/class/leds/led0/";
        $f = fopen($otherDirectory . $filename,"r");
        $value = fgets($f);
        $newvalue = 1;
        fclose($f);
        if ((int)$value == 1) {
           $newvalue = 0;
        }

        if ((int)$value == 0) {
           $newvalue = 1;
        }

        $f = fopen($otherDirectory . $filename,"w+");

        fwrite($f, $newvalue);

        fclose($f);

        echo $newvalue;

}
toggle();
?>

编辑:在这里添加了代码,并从下面使用了修复程序。现在onClick()可以正常工作,但是在将图像设置为lightbulb_1后,它不会转到0。

EDIT2:使用以下所有解决方案的组合进行修复。非常感谢!

3 个答案:

答案 0 :(得分:0)

为包含<script>个文件和js添加单独的code标记。使用下面的代码,

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
function doThings(){
    //Your function code
}
</script>

//Html codes
<img id="imgId" src="lightbulb_0" onClick='doThings();'/>

答案 1 :(得分:0)

你的HTML / JS很好(通过你做的编辑),你的PHP中有错误。 如果echo newvalue

,则echo $newvalue<? php function toggle() { $filename = "brightness"; $otherDirectory = "/sys/class/leds/led0/"; $f = fopen($otherDirectory.$filename, "r"); $value = fgets($f); $newvalue = 1; fclose($f); if ((int) $value == 1) { $newvalue = 0; } if ((int) $value == 0) { $newvalue = 1; } $f = fopen($otherDirectory.$filename, "w+"); fwrite($f, $newvalue); fclose($f); echo $newvalue; } toggle(); ?>
brightness

如果这不起作用,请查看您的文件{{1}}(没有扩展名?)是否存在且您的目录路径是否正确。

答案 2 :(得分:0)

在你里面ajax叫你xud include&#34; dataType&#34;你的PHP脚本正在返回,例如,如果重新使用json,你将会记住它,请记住json_encode它。

type: "GET",
dataType: "json",
url: "script.php",

如果是html

type: "GET",
dataType: "html",
url: "script.php",