无法从函数旁边的变量中获取正确的值。
这是我的代码,我总是把id称为“两个”,我需要传递给更改函数的正确值。
<script type="text/javascript">
<?php
$val='';
global $val;
?>
function change(val){
<?php //global $val;?>
if (val=='one') {
<?php $val='one';?>
}
if (val=='two') {
<?php $val='two';?>
}
}
</script>
<input type="button" onclick="change('one');" value="Change">
<div id="<?php echo $val;?>">
答案 0 :(得分:1)
您正在混合server-side-script
和client-side-script
在javascript
中尝试,
<强> SCRIPT 强>
<script type="text/javascript">
var val='one'; // global value
function change(){
if (val=='one') {
// your code for one
val='two'; // change the value of val to two
}
else if (val=='two') {
// your code for two
val='one'; // again change val value
}
document.getElementsByClassName('changed_value')[0].id=val;
document.getElementById(val).innerHTML=val;
}
</script>
<强> HTML 强>
<input type="button" onclick="change();" value="Change">
<div class="changed_value"></div>
答案 1 :(得分:1)
PHP代码的执行与您的javascript代码无关,后者仅在客户端执行。那么你的脚本在PHP中执行它是什么:
<?php
global $val;
$val='one';
$val='two';
?>
<!-- ... -->
<div id="<?php echo $val;?>">
这是客户端的代码:
<script type="text/javascript">
function change(val){
if (val=='one') {
}
if (val=='two') {
}
}
</script>
<input type="button" onclick="change('one');" value="Change">
因此,如果您想要更改元素,您必须在Javascript中执行此操作:
<script type="text/javascript">
function change(val){
var el = document.getElementsByTagName('div')[0];
if (val=='one') {
el.id = 'one';
}
if (val=='two') {
el.id = 'two';
}
}
</script>
<input type="button" onclick="change('one');" value="Change">
<div id="">