0

ページの先頭で次のコードを使用します。

<script type="text/javascript">

function vote() {

    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else {
        xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
    }

    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById('results').innerHTML = xmlhttp.responseText;
        }
    } 

    xmlhttp.open('GET', 'update.inc.php', true);
    xmlhttp.send();
}
</script>

そして、このhtmlコード:

<a id="vote" name="vote" onClick="vote();">Link</a>

リンクをクリックするとすべて正常に動作し、update.inc.php が実行されて画面に出力されます。だから私はajaxが正しいことを知っています。

ただし、このphpコードを使用すると

echo "<form>
        <input type=\"radio\" name=\"vote\"> yes
        <input type=\"radio\" name=\"vote\"> no
        <input type=\"button\" value=\"$count\" onClick=\"vote();\">
    </form>";

入力ボタンをクリックしても、関数 vote() が起動しなくなりました。このエコーステートメントで何が間違っていますか?

4

1 に答える 1

4

問題は、2つのラジオボタンに名前が付けられているため、機能名とラジオの名前voteがあいまいになっていることです。voteしたがって、関数の名前を変更するだけです。

echo "<form>
        <input type=\"radio\" name=\"vote\"> yes
        <input type=\"radio\" name=\"vote\"> no
        <input type=\"button\" value=\"$count\" onClick=\"doVote();\">
    </form>";

と:

function doVote() {
    ...    
}

または、必要に応じてラジオボタンの名前を変更します。

于 2012-06-30T21:42:13.993 に答える