Javascript 使用onclick将变量传递给ajax

Javascript 使用onclick将变量传递给ajax,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我有一个变量的问题,我想通过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)\" > " . u

我有一个变量的问题,我想通过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>";
很抱歉,在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_名称);
$.post(“assets/basket.php”,{sw_id:sw_id,sw_name:sw_name},函数(数据)
{ 
$(“#篮子”).html(数据);
});
}

设置了sw_id,但sw_名称不起作用。带有“this.name”的html调用是否正确?

这是因为
this.name
不存在,如果您要访问属性,则必须调用
this.getAttribute('name')
id是特定的,可以直接访问

我个人会给juste这个函数,并在函数中提取id和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>
onclick=“addBasket(this)”;
功能添加篮(el)
{
变量
sw_id=标高id,
sw_name=$(el).attr('name');
警报(sw_名称);
$.post(“assets/basket.php”,{sw_id:sw_id,sw_name:sw_name},函数(数据)
{ 
$(“#篮子”).html(数据);
});
}

这是因为
如果要访问属性,必须调用
此属性,则此.name
不存在。getAttribute('name')
id是特定的,可以直接访问

我个人会给juste这个函数,并在函数中提取id和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>
onclick=“addBasket(this)”;
功能添加篮(el)
{
变量
sw_id=标高id,
sw_name=$(el).attr('name');
警报(sw_名称);
$.post(“assets/basket.php”,{sw_id:sw_id,sw_name:sw_name},函数(数据)
{ 
$(“#篮子”).html(数据);
});
}

您可以将整个元素传递到js中:

<div class="search-results" id="235" 
name="Adobe Acrobat Writer 9.0 Professional"
onclick="addBasket(this)">...</div>

您可以将整个元素传递到js中:

<div class="search-results" id="235" 
name="Adobe Acrobat Writer 9.0 Professional"
onclick="addBasket(this)">...</div>
试试
$(this).attr(“name”)
你能试试
$(this.attr('name')
吗?(如果您使用jQuery?请尝试
$(this).attr(“name”)
您可以尝试
$(this).attr('name')
?(如果您使用jQuery?这一术语中的“el”sw_id=el.id,sw_name=$(el).attr('name');这一术语中的“el”sw_id=el.id,sw_name=$(el).attr('name'))是什么意思;