我有一个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:使用以下所有解决方案的组合进行修复。非常感谢!
答案 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",