2011-05-02 71 views
0

任何人都知道为什么下面的代码似乎不工作?我试图追加文本框中的任何内容到URL字符串。Javascript String Var + jQuery Textbox Val

$.ajax({ 
    type: 'POST', 
    url: 'http://myurl.com/something.php?myname='+$('#myname').val(), 
    success: function(point) { 
     var series = chart.series[0], 
     shift = series.data.length > 20; 
     chart.series[0].addPoint(point[0], true, shift); 
      chart.series[1].addPoint(point[1], true, shift); 
      setTimeout(requestData, 5000); 
     }, 
     cache: false 
    }); 
+0

所以'**'表明什么不起作用?你怎么知道它不起作用,为什么? – justkt 2011-05-02 15:06:49

+0

什么不起作用?任何JS错误? “myname”文本框的典型内容是什么? – 2011-05-02 15:06:50

+0

thx到那个忍者那里编辑喔:) – pixelbobby 2011-05-02 15:06:52

回答

3

您没有让我们知道什么是不工作。如果你真的有myname对象,$('#myname').val()应该可以工作。

但是,我不禁注意到您通过POST请求,但同时您正在构建查询字符串。尝试将类型更改为GET并查看它是如何发生的。

+0

对于GET建议+1。 – mattsven 2011-05-02 15:11:15

+0

它完全可以在查询字符串和发布数据中有变量,两者都可以在服务器端单独访问,但这可能是OP所犯的错误。 – 2011-05-02 15:22:44

+0

我知道,但我想根据OP给我们的意思来弄清楚出了什么问题。 – 2011-05-02 15:34:48

0

我会建议使用一个变量,而不是做它内嵌像这样:

<script type="text/javascript> 
$(document).ready(function(){ 
    var name = $("#myname").val(); 
    //any validation would occur here 
    var posturl = "http://myurl.com/something.php?myname" + name; 

    $.ajax({ 
     type: 'POST', 
     url: posturl, 
     data: data, 
     success: success 
     dataType: dataType 
    }); 

}); 
</script> 
<body> 
    <input id="myname" value="John Doe" /> 
</body> 
+0

[输入](http://www.w3schools.com/TAGS/tag_input.asp)标签没有结束标签。 – 2011-05-02 15:13:26

+0

@TheSuperTramp thx – pixelbobby 2011-05-02 15:14:25

1

可能是元素的值包含可以改变查询字符串的含义的字符,例如如果值以&asdf开头,则URL将变为http://myurl.com/something.php?myname=&asdf。如果是的话,试试这个:

$.ajax({ 
    type: 'POST', 
    url: 'http://myurl.com/something.php?myname=' + encodeURIComponent($('#myname').val()), // pass via GET 
    // I assume there is no data to pass -- uncomment otherwise 
    // data: { 
    //  name1: value1, 
    //  name2: value2, 
    // }, 
    success: 
    . 
    . 
    .