使用onclick将变量传递给ajax

时间:2013-10-14 15:46:17

标签: 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)\" >
" . 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”是否正确?

2 个答案:

答案 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' ) );
}