从Javascript中选择获取价值

时间:2012-09-22 16:53:11

标签: javascript ajax select

好的,我知道之前已经问过这个问题(因为我自己已经看过),除了我之外,它似乎对其他所有人都有效。我非常喜欢javascript,因为我尽量不使用它导致它的噩梦调试。但是,这是我的问题。我有一个脚本,我正在努力为ajax添加图像到库。该图像只是一个引用数据库中另一个表的id,对于库来说也是如此。只有两个id。无论如何,当我点击链接时,我希望它运行此脚本将其添加到数据库中。但是,它不起作用,当然,javascript让你知道失败的地方是可怕的。这是脚本的代码。

function addToGallery(img)
{

 var e = document.getElementById("galleries2");
 var gal = e.options(e.selectedIndex).value;
 window.alert("Gallery Id: "+gal+" Image Id: "+img);

       if (img=="")
       {
          document.getElementById("txtHint").innerHTML="";
          return;
       } 
       if (window.XMLHttpRequest)
       {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
       }
       else
       {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
       }
          xmlhttp.onreadystatechange=function()
       {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
       {
          document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
       }
    }
       xmlhttp.open("GET","addtogallery.php?img="+img+"gal="+gal,true);
       xmlhttp.send();
    }

好的,所以上述方法无效。我添加了警告消息,尝试尽可能多地进行故障排除。如果我将警报框放在var上面,并且只要求它引用img变量,它就可以工作。现在,如果我把它放在下面并尝试做我在那里做的事情,它就会停止。没有消息框,没有ajax,没有。所以,我认为它与

有关
var gal = e.options(e.selectedIndex).value;

我也用[]而不是()来尝试它,而且没有... 任何帮助将不胜感激。

更新 好吧,所以我已经克服了选择的问题,现在我试图用xhtmlrequest.open方法传递值。我似乎可以通过1获得价值,但不是两个。这是有问题的代码行

xmlhttp.open("GET","addtogallery.php?image="+img+"&gid="+gal,true);

现在,我知道img和gal已设置,因为每当运行此脚本时会弹出一个警告框,告诉我它们已设置。但是当它到达php页面时它只会输出img变量,并且gal变量仍未设置。以前有人有过这个问题吗?

3 个答案:

答案 0 :(得分:1)

你肯定需要方括号,但也尝试将变量“e”更改为“el”之类的其他内容。根据我的理解,该功能会响应点击,因此可能会为事件保留。

尝试:

var galleries = document.getElementById("galleries2");
var gal = galleries.options[galleries.selectedIndex].value;

答案 1 :(得分:0)

我认为你想要做的是:

var gal = e.options[e.selectedIndex].value;

希望这有帮助。

答案 2 :(得分:0)

你需要方括号而不是parens。

 var gal = e.options[e.selectedIndex].value;

您的JavaScript环境应该为您提供一个很好的 TypeError ,例如“HTMLOptionsCollection不是函数”