我对变量有问题,我想通过ajax传递给php。
在 php 文件中,我生成了一些带有 id 和 name 属性的div。
生命.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没有设置。(未找到)
头部部分中的 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"的调用是否正确?
这是因为this.name
不存在,如果你想访问你必须调用的属性this.getAttribute('name')
ID是特定的,可以直接访问。
就个人而言,我会为函数提供理由,并在函数中提取 id 和名称
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>
您可以将整个元素传递到 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' ) );
}