0

好的,我已经为此苦苦挣扎了几个小时。我正在使用 ajax 使用 php 代码更新我网站中的 div 但是,我正在尝试从外部 javascript 文件中发送函数中的参数以更新正确的链接(有多个下拉框)

例如:这是我的选择框

<script type='text/javascript' src='ajax.js'></script>//include ajax file
<select onchange='MakeRequest(raceupdate);
        this.options[this.selectedIndex].value;'> //so no use of a button is needed to auto link to anchor tag
        <option>Deathmateched</option>
    <?php
        dmList()
        ?>

 </select>

然后接下来是我的外部 ajax 函数 MakeRequest()。

function MakeRequest(value)
{
    var linkInfo = "teleport.php?call=" + value;//create appropriate link depending on function parameters  
    var xmlHttp = getXMLHttp();

    xmlHttp.onreadystatechange = function()
    {
        if(xmlHttp.readyState == 4)
        {
            HandleResponse(xmlHttp.responseText);
        }
    }     

    xmlHttp.open("GET", linkInfo, true); //update page using link info variable created above
    xmlHttp.send(null);

}

如您所见,我正在尝试将一串文本传递给此函数,但我似乎在某个地方失败了。

4

1 回答 1

1

您可能希望设置您的标签以传递“this”。我看不到你的raceupdate 变量是在哪里声明的,除非它是全局的……在这种情况下,你应该向我们展示你在用那个变量做什么。

<select onchange='MakeRequest(this);'> 
    <option>Deathmateched</option>
    <?php
        dmList();
    ?>

如果你这样做,你必须改变这个功能:

    function MakeRequest(element)
    {
    var linkInfo = "teleport.php?call=" + element.value;//create appropriate link depending on function parameters  
    var xmlHttp = getXMLHttp();

    xmlHttp.onreadystatechange = function()
    {
        if(xmlHttp.readyState == 4)
        {
            HandleResponse(xmlHttp.responseText);
        }
    }     

    xmlHttp.open("GET", linkInfo, true); //update page using link info variable created above
    xmlHttp.send(null);

}

你想在这里做什么?

this.options[this.selectedIndex].value;

在您的评论中,您似乎是在说要跳转到锚标记?如果是这样,那么你会想做类似的事情

var anchorTag = document.getElementID("YOUR_ANCHOR_TAG_ID");
anchorTag.focus();
于 2012-05-31T01:07:20.900 回答