jquery帖子不行

时间:2014-06-02 07:31:35

标签: jquery html

我有简单的形式我想在div标签下显示搜索结果所以我为它写了一些jquery但我不会工作:

<form action="case_databasechange.php" method="post">
    <label>Look in</label>
    <select name="look-in" id="look">
        <!--<option selected hidden disabled value=""></option>-->
        <option value="entry">Entry</option>
        <option value="town">Town</option>
        <option value="Introducer">Introducer</option>
    </select>
    <label>For</label>
    <input name="search-box" type="text" class="wd-500" id="searchv" />
    <!-- id="search-box" changed-->
    <button type="submit" value="Submit" id="search">Search</button>
</form>

我编写简单的jquery来显示搜索结果:

$('#look').change(function () {
    var look = $('#look').val();
});

$('#searchv').keyup(function () {
    var search = $('#searchv').val();
});

$.post("getEntry.php", {
    lookin: look,
    for: search
}, function (data, status) {
    $('#txtHint1').html("data");
});

但任何结果都不会显示在 <div id="txtHint1"></div>代码

4 个答案:

答案 0 :(得分:2)

变量外观和搜索是本地定义的,它们仅限于函数。

试试这个..

$.post("getEntry.php", {
   lookin: $('#look').val(),
    srch: $('#searchv').val()  // do not use for keyword it may not work 
},
 function(data,status){
   $('#txtHint1').html(data); // remove the doube quotes
 });  

答案 1 :(得分:1)

从数据中删除双引号。 data是一个变量。

$.post("getEntry.php",
{
  lookin: look,
  for: search
},
function(data,status)
{
  $('#txtHint1').html(data);
}); 

答案 2 :(得分:1)

"data"删除双引号。数据是一个变量&amp;您正在转换它或将其用作String。

此外,for是关键字。它可能不起作用,如果你想使用它使它成为字符串:)。

$.post("getEntry.php",
{
  "lookin": look,
  "for": search
},
function(data,status)
{
  $('#txtHint1').html(""+data+"");
}); 

此外,您的变量looksearch位于local function s内,因此$.post无法使用它们,我们无法检测到何时调用OnWhichEvent? $.post

我建议您制作global并将代码更改为:

var look,search;
$('#look').change(function () {
    look = $('#look').val();
$.post("getEntry.php", {
    "lookin": look,
    "for": search
}, function (data, status) {
    $('#txtHint1').html(data);
});
});

$('#searchv').keyup(function () {
    search = $('#searchv').val();
$.post("getEntry.php", {
    "lookin": look,
    "for": search
}, function (data, status) {
    $('#txtHint1').html(data);
});

});

希望它现在有用。 :)

答案 3 :(得分:1)

你的设计有些缺陷。您在事件处理程序中声明并初始化局部变量,但它们无法被全局范围看到 - $ .post无法使用这些值。通过将顶部的外观和搜索变量声明为全局变量来修复它,然后在处理程序中只分配值。

var look, search; //at the top as globals

look = ....;
search = .....; // in the handlers

起飞&#34;从数据和使用&#39;为&#39;:而不是: