1

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 が設定されていません。(未定義)

head セクションの 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 が機能していません。「this.name」を使用したhtmlでの呼び出しは正しいですか?

4

2 に答える 2

5

これは、idthis.nameを呼び出す必要がある属性にアクセスする場合に存在しなかったためでthis.getAttribute('name')あり、直接アクセスすることができます。

個人的には、これを関数に与え、関数で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>
于 2013-10-14T15:49:27.943 に答える