我会尝试新的更具体的尝试。我正试图从变量中获取<span id=”$var”>BadText</span>
的值。通过首先将值写入JS变量,将idFull传递给函数可以正常工作。但在跨度区域不起作用。我总是得到“document.getElementById(...)为null”。你可以在那里找到解决方案吗?我已经克服了思绪,但我没有发现任何线索。对我来说,它看起来像是变量范围或执行顺序的问题。
function transferFader(value,id)
{
if (window.XMLHttpRequest)
{
// AJAX nutzen mit IE7+, Chrome, Firefox, Safari, Opera
xmlhttp=new XMLHttpRequest();
}
else
{
// AJAX mit IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("result"+id).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","backEnd.php?v="+value+"&id="+id,true);
xmlhttp.send();
return;
}
&#13;
<?
function slider(){
echo('
var idFull = "123";
var idFullResult = "result123";
<form oninput="transferFader(auswertung.value,idFull)">
<input type="range" name="auswertung" min="0" max= "63" value="30" orient="vertical">
<br>
<span id=idFullResult>n.a.</Span>
</form>
');
}
slider();
?>
&#13;
答案 0 :(得分:0)
$idFull
和$idFullResult
永远不会在PHP中设置。此外,您的范围的ID也被硬编码为idFullResult
。我发现这段代码难以阅读,但我认为你的意思是这样做:
echo 'var idFull = "' . $id . '"';
echo '<span id="result' . $id . '">n.a.</span>';
将PHP,JS和HTML混合在一起通常是一种不好的做法,原因有很多。这是它可能导致混淆的一个例子。
答案 1 :(得分:0)
echo('
var idFull = "123";
var idFullResult = "result123";
<form oninput="transferFader(auswertung.value,idFull)">
<input type="range" name="auswertung" min="0" max= "63" value="30" orient="vertical">
<br>
<span id=idFullResult>n.a.</Span>
</form>
');
您的问题在于此范围<span id=idFullResult>n.a.</Span>
HTML与结束标记不匹配,应为</span>
。此外,您正在尝试使用span的id标记在PHP中使用js字符串替换。 idFullResult
不会按预期展开。