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

时间:2016-07-17 12:42:25

标签: javascript php ajax

我在为按钮值定义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;

1 个答案:

答案 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>