我在为动态按钮值定义变量时遇到问题。它在php中工作,在我的javascript中不起作用。
假设我有 3 个值为 1、2 和 3 的 php 回显按钮无论我单击哪个,它都会返回值 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回显形式
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;
试试这个:
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>
}
阿贾克斯 :
<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>