在下面的编码中,我将动态获取id(id =" drop")。
我需要这个id值到另一个自动搜索功能。
基于id必须从数据库中搜索类别..
<div class="search_dropdown">
<select name="category" id="drop">
<option value="">categories</option>
<?php
$resource = Mage::getSingleton('core/resource');
$writeConnection = $resource->getConnection('core_write');
$sql = "SELECT title, category_id FROM directory_categories";
$result = $writeConnection->fetchAll($sql);
$i = 1;
if (count($result) > 0) {
foreach ($result as $key => $row) {
$last = "";
if ($i % 4 == 0) {
$last = "last";
}
?>
<option
value="<?php echo $row['category_id']; ?>"><?php echo $row['title'] ?></option>
<?php $i++;
}
}
?>
</select>
</div>
在我的剧本编纂中
<script type="text/javascript">
$(document).ready(function () {
$('#drop').click(function (e) {
e.preventDefault();
var array = [];
$('select :selected').each(function (i, value) {
array[i] = $(this).val();
});
//here make your ajax call to a php file
$.ajax({
type: "GET",
url: "<?php echo $this->getBaseUrl();?>listings/search/autosearch",
data: {selected_values: array, otherVal: 'something else'}
});
});
});
</script>
在我的功能编码中....我没有得到任何输出..它显示结果为空
public function autosearchAction()
{
$array = $_GET['selected_values'];
vardump($array);die();
foreach($array as $key => $value){
//do something with the key/value.
}
}
提前致谢
答案 0 :(得分:2)
在脚本编码中,而不是
$('drop').click(function (e) {
使用
$('#drop').click(function (e) {
因为drop
是select元素的id而在jQuery中如果我们使用id作为选择器,那么我们必须在#
您应该使用ajax的success
方法获取ajax响应,如下所示
$.ajax({
type: "GET",
url: "<?php echo $this->getBaseUrl();?>listings/search/autosearch",
data: {selected_value: $('#drop').val(), otherVal: 'something else'}
},
success: function(res) {
alert(res);
}
});
答案 1 :(得分:0)
$('drop').click(function(){ ... })
在语法方面没有错误,但它永远不会被执行,因为它假定存在本机HTML 'drop'
控件,就像本机'body', 'table', 'div'
一样,或'select'
等...但DOM中没有'drop'
。'drop'
是您分配给'select'
控件的ID。
因此,如果您希望代码能够正常工作,那么您必须告诉jQuery听取'select'
控件上的点击,或者ID为'#drop'
的控件,并通过在ID之前添加'#'
,表明它不是本机元素,而是元素的ID。
$('#drop').click(function(){ ... })