我在为按钮值定义var时遇到问题,这是动态的。它适用于php,它在我的javascript中不起作用。
假设我有3个php-echoed按钮,其值为1,2和3 无论我点击哪一个,它都会返回值3,即使对于明显具有值1或2的按钮也是如此。为什么?无法弄清楚。
好像javascript只获取按钮的最高值或最后一个值。我是javascript的新手,所以我的知识非常少。
<script type='text/javascript'>
function myFunction() {
var msg_id = document.getElementById('like').value;
var dataString = 'msg_id=' + msg_id;
$.ajax({
type: 'POST',
url: 'ajaxjs.php',
data: dataString,
cache: false,
success: function(html) {
alert(html);
}
});
}
</script>
然后我有php-echoed表单
while($row = mysql_fetch_array($msg_check)) {
$msgid = $row['id'];
echo "
<form method='POST'>
<input id='like' onclick='myFunction()' type='button' value='$msgid'>
</form>
外部ajaxjs.php
$msgid = $_POST['msg_id'];
echo $msgid;
答案 0 :(得分:3)
试试这个:
while($row = mysql_fetch_array($msg_check)) {
$msgid = $row['id'];
echo "<form method='POST'>
<input data-id ="$msgid" onclick='return myFunction(this)' type='button' value='$msgid'>
</form>
}
Ajax:
<script type='text/javascript'>
function myFunction(obj) {
var element_id = $(obj).data('id');
var msg_id = $(obj).val();
var dataString = 'msg_id=' + msg_id;
console.log(dataString ); //see in console
$.ajax({
type: 'POST',
url: 'ajaxjs.php',
data: dataString,
cache: false,
success: function(html) {
alert(html);
}
});
}
</script>