2013-10-14 201 views
1

我有一個變量的問題,我想通過ajax傳遞給php。用onclick將變量傳遞給ajax

在一個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不工作。用「this.name」在HTML中調用是否正確?

+1

試試'$(this).attr(「name」)' – tymeJV

+0

你可以試試'$(this).attr('n ame')'? (如果你使用jQuery? – Darren

回答

4

這是因爲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> 
+0

完美!謝謝! – mnlfischer

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