【问题标题】:form doesn't pass buttons value via jquery, why?表单不通过 jquery 传递按钮值,为什么?
【发布时间】:2017-07-28 13:56:02
【问题描述】:

我用 PHP 写过类似的东西:

 echo '<form method="post" id="delete">';
    while ($users = $getChildUsers -> fetch_array()){
        echo '<tr>';
            echo '<td>'.$users['user_id'].'</td>';
            echo '<td>'.$users['user_mail'].'</td>';
            echo '<td>'.$users['user_phone'].'</td>';
            echo '<td>';
                    echo '<button type="submit" class="btn btn-primary" onclick="del_child_user();" name="user_id" value="'.$users['id'].'">Usuń </button>';
            echo '</td>';
        echo '</tr>';
    }
    echo '</form>';

及使用功能:

function del_child_user(){
$(document).on('submit', '#delete', function()
{
    $.post('scripts/child_user.php', $(this).serialize(), function(data)
    {
        $("#del_msg").html(data);
    });
    return false;
});}

当我尝试返回$_POST['user_id'] 的值时,没有值可以显示。当我写print_r($_POST) 时,它给了我一个空数组。

我做错了什么?

【问题讨论】:

  • 据我所知 serialize 只处理 &lt;input&gt; 元素
  • 您在表单中的输入在哪里?
  • 我尝试使用 input type="submit" 而不是按钮,但它给了我同样的效果
  • 不完全是,因为你发布的问题是关于使用 AJAX,我比 Jquery 更糟糕:D

标签: javascript php jquery forms button


【解决方案1】:

我会说,你对按钮的定义是错误的

你定义了:

echo '&lt;button type="submit" class="btn btn-primary" onclick="del_child_user();" name="user_id" value="'.**$users['id']**.'"&gt;Usuń &lt;/button&gt;';

但在顶部,你写了 $users_['user_id']

也许只是一个错字?

补充:

看这里,我为您创建了一个示例,让您无需使用表单即可实现目标。

https://jsfiddle.net/9zbt9h2k/6/

【讨论】:

  • 不,$users['user_id'] 与我的数据库中的 $users['id'] 不同,在使用的按钮中 $users['id'] 因为它是 INT 值而不是显示在页面
  • 在 Child_user.php 文件中我调用 $_POST['user_id'] ,这是提到的按钮的名称。
  • 然后它的答案来自 MysterX... 仅序列化索引表单字段,而不是按钮。看这里:jsfiddle.net/9zbt9h2k去掉input=hidden,响应为空。
  • 所以你告诉我,我必须为通过数据库查询收集的每个用户创建带有按钮和隐藏输入的新​​表单?并且对于每个都有单独的功能? ;/
  • 不,不是真的......你不必定义这么多表格,顺便说一句,没有它你可以做到(表格)。给我几分钟,我会在一个新的答案中为你举一个例子。
猜你喜欢
  • 2012-12-19
  • 1970-01-01
  • 2015-03-24
  • 2011-11-26
  • 1970-01-01
  • 2011-02-04
  • 1970-01-01
相关资源
最近更新 更多