PHP 回显按钮仅返回 javascript 中最后一个回显按钮的值


PHP-echoed buttons return only the value of a last echoed button in javascript

我在为动态按钮值定义变量时遇到问题。它在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>