我有变量问题,我想通过ajax传递给php。
在php文件中,我生成了一些带有id和name属性的div。
livesrc.php
echo "<div class=\"search-results\" id=\"" . $softwareArray['Sw_idn'] . "\"
name=\"" . $softwareArray['SoftwareName'] . "\"
onclick=\"addBasket(this.id, this.name)\" >
" . utf8_encode($softwareArray['SoftwareName']) . "</div>";
相关部分是:
onclick="addBasket(this.id, this.name)
很抱歉逃脱,在html中div看起来像:
<div class="search-results" id="235"
name="Adobe Acrobat Writer 9.0 Professional"
onclick="addBasket(this.id, this.name)">...</div>
这看起来没问题,但在js“addBasket”中,未设置变量sw_name。 (undefinded)
头部的JS:
<script type="text/javascript">
function addBasket(sw_id, sw_name)
{
alert(sw_name);
$.post("assets/basket.php",{sw_id: sw_id, sw_name: sw_name}, function(data)
{
$("#basket").html(data);
});
}
</script>
设置了sw_id,但sw_name不起作用。用html调用“this.name”是否正确?
答案 0 :(得分:5)
这是因为this.name
如果您想要访问您必须调用的属性this.getAttribute('name')
,则 onclick="addBasket(this)";
<script type="text/javascript">
function addBasket(el)
{
var
sw_id = el.id,
sw_name = $(el).attr('name');
alert(sw_name);
$.post("assets/basket.php",{sw_id: sw_id, sw_name: sw_name}, function(data)
{
$("#basket").html(data);
});
}
</script>
不存在.id是特定的,可以直接访问。
就个人而言,我将把这个提供给函数,并在函数中提取id和name
{{1}}
答案 1 :(得分:0)
你可以将整个元素传递给你的js:
<div class="search-results" id="235"
name="Adobe Acrobat Writer 9.0 Professional"
onclick="addBasket(this)">...</div>
然后在你的功能中抓住你想要的东西
function addBasket(sw) {
alert( sw.id + ' ' + sw.getAttribute( 'name' ) );
}