我正在尝试从PHP输出中调用JavaScript函数。
问题是该功能不会触发。
这是我的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="styles.css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="build_workout_functions.js" charset="UTF-8"></script>
</head>
<?php
if ( isset( $_GET[id] ) ) {
echo '<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="build_workout_functions.js" charset="UTF-8">
getUserProgram('.$_GET[id].');
</script>';
}
?>
<body id="login-bg">
<div class="workout_table">
<select name="days">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
<option value="F">F</option>
</select>
<select name="muscles" onchange="getExercies()">
<option value="legs">legs</option>
<option value="back">back</option>
</select>
<select name="exericse"><select>
</div>
</body>
</html>
JavaScript代码:
function getUserProgram ( userId ) {
alert(userId);
$.ajax({
type: "POST",
url: "get_user_program.php",
data: {id: userId}
})
.done(function( msg ) {
alert( "Data Saved: " + msg );
});
}
答案 0 :(得分:4)
一些事情:
<head>
或<body>
(您的不是)build_workout_functions.js
。您的PHP输出不需要重新加载它们。<script>
属性为src
的广告代码中。在此处考虑the documentation:
如果 属于
src
属性,则该元素必须为空或仅包含与script documentation匹配的script content restrictions。
这意味着您在使用src
属性时应该只提供JavaScript注释内容。我们在w3c网站上为我们提供了一个例子:
<script src="cool-effects.js">
// create new instances using:
// var e = new Effect();
// start the effect using .play, stop using .stop:
// e.play();
// e.stop();
</script>
答案 1 :(得分:0)
只要写成html格式,如果满足if
条件,那么你的脚本将被编写并执行,否则不会。
注意:我假设您在前两行<script>
作为试用而写,并且您也将getUserProgram()
称为试用。
<?php
if(isset($_GET[id]))
{
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="build_workout_functions.js" charset="UTF-8">
getUserProgram('<?php echo $_GET[id]; ?>');
</script>
<?php
}
?>
我也在函数调用中回显$_GET[id]
并且我原样$_GET[id]
,顺便说一下它可能是错误的。