2015-09-11 53 views
3

我有一个表格,负责执行搜索(@fiddle无法通过AJAX来传递一种形式的输入值

<form class="pull-right" id="generate" > 
    <input type="text" id="name" class="search-query"> 
    <button type="submit" value="submit">Find</button> 
</form> 

当搜索将得到执行的结果应该得到显示在该div

<div id="prod_search">       
</div> 

要执行我想通过Ajax通过在表单的输入字段中输入到另一个脚本(t_searchmenu.php)的值的搜索

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script> 
$("#generate").submit(function(e){ 
var name= $(this).find('#name').val();; 
    alert(name); 
    $.ajax({ 
    type:"post", 
    url:"t_searchmenu.php", 
    data:{"name":name}, 
    cache:false, 
    success: function(returndata){ 
     $('#prod_search').html(returndata); 
     console.log(returndata) 
    } 
    }); 
    return false; 
}); 
</script> 

t_searchmenu.php代码

<?php 
$name = $_REQUEST['name']; 
echo $name; 
?> 

但问题是,我没有得到在控制台的任何结果或错误。

注:在小提琴是越来越显示警告框里面的价值,但由于某种原因它是没有得到显示在我的网页

+0

“我没有得到任何结果或控制台错误”改变你的控制台错误日志设置 –

+0

或使用简单的jQuery'变数名称= $( '#名称')。VAL();'因为你已经使用jQuery –

+0

你不应该更改代码,保持'getElementByID',因为它是 – Tushar

回答

1

的问题是,在getElementByIDD应该是小写。 getElementByID是无效的语法。

使用getElementById(注意小写d)而不是getElementByID

var name= document.getElementById('name').value; 

我也建议使用jQuery的方法

var name= $('#name').val(); 

在情况下,如果你有重复的ID,

var name= $(this).find('#name').val(); 

此外,添加nameinput

<input type="text" name="name" id="name" class="search-query"> 
+0

我试过你的代码,但我仍然得到相同的结果 – st001

+0

@ st001是请求发送到服务器,你得到的变量发送请求 – Tushar

+0

@ st001尝试绝对URL,而不是相对URL – Tushar

0

您必须更改

document.getElementByID('name').value; 

document.getElementById('name').value; 
0
$("#generate").submit(function(e){ 
    var name= document.getElementById('name').value; 
    $.ajax({ 
    type:"post", 
    url:"test2.php", 
    data:{"name":name}, 
    cache:false, 
    success: function(html){ 
     $('#prod_search').html(html); // here `html` come not `returndata` 
     console.log(html) 
    } 
    }); 
    return false; 
}); 

你的Ajax返回的数据存储在html在成功函数参数,所以你必须使用html代替returndata

+0

我想你的代码,但我仍然没有得到期望的结果 – st001

+0

将您的文件名放入网址中。可能你没有改变它。 –

+0

这样做,但没有工作,请给我一件事,如果我尝试通过警报框检查VAR名称内的值,它会显示值? – st001

0

您可以使用jQuery serialize()方法在窗体上传递它的值。

$("#generate").serialize(); 
0

使用下面的代码尝试 -

<script> 
 
$("#generate").submit(function(e){ 
 
    var name= document.getElementById('name').value; 
 
    $.ajax({ 
 
    type:"post", 
 
    url:"t_searchmenu.php", 
 
    data:{"name":name}, 
 
    cache:false, 
 
    success: function(returndata){ 
 
     $('#prod_search').html(returndata); 
 
     console.log(returndata) 
 
    } 
 
    }); 
 
    return false; 
 
}); 
 
</script>

+0

我试过,但它不显示结果,PLZ电话我一两件事,如果我试图通过警告框,检查变数名称中的数值,将显示它的价值? – st001

+0

@ st001 - 是的,它应该显示值。你可以试试,并分享你在警戒框中观察的内容吗? –

相关问题