如何使用php循环使js更简单

时间:2013-09-10 04:40:57

标签: php javascript

function displayResult1(szybkosc) {
    var n = value = szybkosc;
    var u = n.split("|")[1]; 
    document.getElementById('result1').innerText = ' '+u;
}

function displayResult2(szybkosc) {
    var n = value = szybkosc;
    var u = n.split("|")[1];
    document.getElementById('result2').innerText = ' '+u;
}

JavaScript代码可以工作,但是我需要为每个结果执行新功能,无论如何要使它更快?

$i = 1;
while($i < 10){
    $result = "result" . $i;
    $displayResult = "displayResult" . $i;
    echo "user number ".$i."
    <input type='radio' name='szybkosc' onclick='$displayResult(this.value)' value='$sp1[id]|1|$row[id]' />
    <input type='radio' name='szybkosc' onclick='$displayResult(this.value)' value='$sp1[id]|3|$row[id]' />
    <span id='$result'></span></br>
    <input type='radio' name='ss' value='$sp1[id]|1|$row[id]' />
    <input type='radio' name='ss' onclick='$displayResult(this.value)' value='$sp1[id]|1|$row[id]' />";
    $i++;
}

2 个答案:

答案 0 :(得分:1)

  1. 为什么你有两个功能用于同一目的?
  2. value使用var n = value = szybkosc;的目的是什么?
  3. 您的代码没有匹配的大括号和正确的html标记。
  4. 只需将id作为第二个参数传递:

    function displayResult(szybkosc, id) {
        var n = szybkosc;
        var u = n.split("|")[1];
        document.getElementById(id).innerText = ' ' + u;
    }
    

    PHP代码更新为:

    $i = 1;
    while($i < 10){
        $result = "result" . $i;
        $displayResult = "displayResult" . $i;
        echo "user number ".$i."
        <input type='radio' name='szybkosc' onclick='$displayResult(this.value)' value='$sp1[id]|1|$row[id]' />
        <input type='radio' name='szybkosc' onclick='$displayResult(this.value)' value='$sp1[id]|3|$row[id]' />
        <span id='$result'></span></br>
        <input type='radio' name='ss' value='$sp1[id]|1|$row[id]' />
        <input type='radio' name='ss' onclick='$displayResult(this.value, "result' . $i .'")' value='$sp1[id]|1|$row[id]' />";
        $i++;
    }
    

答案 1 :(得分:0)

您不需要为php循环中的每个项目使用多个js函数。 只需使用这个单一的js函数并相应地传递参数:

function displayResult(szybkosc, id)
   var n=value=szybkosc;
   var u=n.split("|")[1]; 
   document.getElementById('result'+id).innerText = ' '+u;
}

修改调用js函数的php循环代码:

$i = 1;
    while($i     $result = "result" . $i;
    $displayResult = "displayResult" . $i;
    echo "user number ".$i."
    input type='radio' name='szybkosc' onclick='$displayResult(this.value, '.$i.')' value='$sp1[id]|1|$row[id]' />
    input type='radio' name='szybkosc' onclick='$displayResult(this.value, '.$i.')' value='$sp1[id]|3|$row[id]' />  
   input type='radio' name='ss' value='$sp1[id]|1|$row[id]' />
   input type='radio' name='ss' onclick='$displayResult(this.value, '.$i.')' value='$sp1[id]|1|$row[id]' />";
   $i++;
}

顺便说一下,你的php while循环没有左括号。