AJAX console.log 返回未定义
AJAX console.log is returning undefined
我的数据库的 while 循环中有这两个输入字段:
<input type="hidden" id="ID<?=$product['id'];?>" name="ID" value="<?
=$product['id'];?>">
<input type="hidden" id="name<?=$product['id'];?>" name="hidden_name"
value="<?=$product['title'];?>">
这是触发 AJAX 的按钮:
<input type="button" class="button" name="cartbtn" id="button<?
=$product['id'];?>" value="Quick Add-to-Cart">
当我这样做时我的问题出现了:
<script type="text/javascript">
$(document).ready(function(data){
$('.button').click(function(){
var product_id = $(this).attr('id');
var product_name = $('#name'+product_id).val();
console.log(product_name);
});
});
</script>
console.log(product_name);
返回为未定义。
var product_id = $(this).attr('id');
没有问题,如果我 console.log(product_id)
它 returns: "button6",例如(应该如此)。
id="button<?=$product['id'];?>"
前面不应该有"button",所以:
id="<?=$product['id'];?>"
正确。我忘记了,抱歉。
如果console.log(product_id)
returns button6
那意味着你的 product_name
是 namebutton6
。我相信你希望它是 name6
既然你把它弄得太复杂了,最简单的方法是:
var product_name = $(`#name${product_id.slice(6)}`).val();
您使用 slice(6)
方法删除前六个字符 'button'
。
我的数据库的 while 循环中有这两个输入字段:
<input type="hidden" id="ID<?=$product['id'];?>" name="ID" value="<?
=$product['id'];?>">
<input type="hidden" id="name<?=$product['id'];?>" name="hidden_name"
value="<?=$product['title'];?>">
这是触发 AJAX 的按钮:
<input type="button" class="button" name="cartbtn" id="button<?
=$product['id'];?>" value="Quick Add-to-Cart">
当我这样做时我的问题出现了:
<script type="text/javascript">
$(document).ready(function(data){
$('.button').click(function(){
var product_id = $(this).attr('id');
var product_name = $('#name'+product_id).val();
console.log(product_name);
});
});
</script>
console.log(product_name);
返回为未定义。
var product_id = $(this).attr('id');
没有问题,如果我 console.log(product_id)
它 returns: "button6",例如(应该如此)。
id="button<?=$product['id'];?>"
前面不应该有"button",所以:
id="<?=$product['id'];?>"
正确。我忘记了,抱歉。
如果console.log(product_id)
returns button6
那意味着你的 product_name
是 namebutton6
。我相信你希望它是 name6
既然你把它弄得太复杂了,最简单的方法是:
var product_name = $(`#name${product_id.slice(6)}`).val();
您使用 slice(6)
方法删除前六个字符 'button'
。