使用php ajax在同一页面上多个提交

洛克克斯
<div id="home">
<div class="container">
    <form action="" method="post">      
        <b><font color = "000099"><select name="category" id="category">
        <option>Name </option>
        <option>Email</option>
        <option>Employee</option>
        <option>Customer</option>
        </select></font></b>
        <b><font color = "000099"><select name="read" id="read">
        <option>New</option>
        <option>Archive</option>                                    
        </select></b>
        <font color = "339933"><b><input name="value" type="text" placeholder="Value" /> </b>                                   
        <input type="submit" value="GO"/></font><br>
    </form>
<font color = "339933"><b>
</b></font>
<p><div id="body">
<table width="98%" border="1">
<tr></tr>
<tr>
    <td><font color = "339933"><b>Name</td>
    <td><font color = "339933"><b>E-Mail </td>
    <td><font color = "339933"><b>Access</td>
    <td><font color = "339933"><b>Update </td>
</tr>
<?php
$read = $_POST['read'];

If($read == 'New'){
    $read = '0';
}

If($read == 'Archive'){
    $read = '1';
    $arc = 'AND date < CURDATE() - INTERVAL 90 DAY';
}

$category = $_POST['category'];
$value = $_POST['value'];
if($category == 'Name'){
    $where = " where name like '%$value%' ";
}else if($category == 'E-mail'){
    $where = " where Email like '%$value%' ";
}else if($category == 'Employee'){
    $where = " where Email like '%$value%' ";
}else if($category == 'Customer'){
    $where = " where Email not like '%$value%' ";
}

$select = 'SELECT *';
$from = ' FROM users';
if($where == ''){
    $where = ' WHERE TRUE ';
}

$order = " order by id desc limit 100";

if($read == '0'){
    $sql = $select . $from . $where . $order ;
}else{
    $sql = $select . $from . $where . $arc . $order ;
}

$result_set=mysql_query($sql);
    while($row=mysql_fetch_array($result_set)) {
?>
<tr>
    <form  method="post" name="forms" action=""> 
        <td><font color = Black><?php echo $row['name']; ?></td>
        <td><div id= "remail" name="remail"><font color = Black><?php echo $row['Email']; ?></div></td> 
        <td><input type="text" name="access_rights" class="form-control" value="<?php echo $row['access']; ?>" required="required" ></td>
        <td><input type="submit" class="submit_button" id="submit_button" name="submit_button" value="Update"/></td>
    </form>
<?php } ?>
</table>
</div>
</body>

<script type="text/javascript">
    $(function() {
        $(".submit_button").click(function() {
        alert('asfsfsds');
        var ID = $(this).attr("id");
        var dataString1 = 'msg_id='+ ID;
        var mail =  $("#remail").val();
        var mailid = 'remail='+ mail;
        var textcontent = $("#access_rights").val();
        var dataString = 'access_rights='+ textcontent;
        if(textcontent==''){
            alert("Enter some Value..");
            $("#access_rights").focus();
        } else {
        $.ajax({
            type: "POST",
            url: "action.php",
            data: dataString,mailid,dataString1,
            cache: true,
            success: function(html){
                document.getElementById('access_rights').value='';
                $("#access_rights").focus();
            }  
        });
        }
    return false;
    });
});
</script>
</html>

上面是我的php ajax代码。我想由ajax在mysql数据库中的一个字段。

页面上有多个提交按钮。让我正确地解释你。

下面的代码用于对页面上的值进行排序。此值从数据库中检索。一切正常。我可以从数据库中获取数据,它显示在同一页面中。

<form action="" method="post">      
<b><font color = "000099">
    <select name="category" id="category">
        <option>Name </option>
        <option>Email</option>
        <option>Employee</option>
        <option>Customer</option>
    </select>
</font></b>
<b><font color = "000099">
        <select name="read" id="read">
        <option>New</option>
        <option>Archive</option>                                    
    </select>
</b>
<font color = "339933"><b><input name="value" type="text" placeholder="Value" /></b>                                    
<input type="submit" value="GO"/></font><br>
</form>

在下面的代码中,数据从数据库中显示出来,一个文本框和提交按钮将显示在表格中。

<form method="post" name="forms" action=""> 
    <tr>
        <td><font color = Black><?php echo $row['name']; ?></td>
        <td><div id= "remail" name="remail"><font color = Black><?php echo $row['Email']; ?></div></td> 
        <td><input type="text" name="access_rights" class="form-control" value="<?php echo $row['access'];?>" required="required" ></td>
        <td><input type="submit" class="submit_button" id="submit_button" name="submit_button" value="Update"/></td>
    </tr>
</form>

我希望具有特殊权限的用户可以通过ajax更新值,因为可能会有多行,并且每次刷新页面都不好。

在单击更新按钮后,此刻ajax事件未触发。

有人可以建议我吗?我的ajax不好。

约翰·S

可能还有其他问题,但是以下行在语法上是不正确的:

data: dataString,mailid,dataString1,

这不是用Java连接字符串的方式。另外,您需要将“名称=值”对与“&”分隔。

除了串联字符串,还可以使用对象并让JQuery进行串联:

data: {
    'access_rights': $("#access_rights").val(),
    'remail': $("#remail").val(),
    'msg_id': $(this).attr("id")
},

更新:

您没有的元素id="access_rights您确实有个元素id="remail",但是您在循环中创建了该元素,因此您将拥有多个元素id

您需要获取与单击的提交按钮位于同一行的元素的值。您不能使用id来做到这一点相反,您可以.closest('tr')在button元素上使用来获取周围的行。然后,您可以.find()在row元素上使用以获取该行中的值。

改变:

<td><div id= "remail" name="remail"><font color = Black><?php echo $row['Email']; ?></div></td> 

到:

<td><font color="Black" class="remail"><?php echo $row['Email']; ?></td> 

然后您可以拥有:

$(".submit_button").click(function() {
    var $submitBtn = $(this),
        $row = $(this).closest('tr'),
        $accessRights = $row.find("input[name=access_rights]"),
        accessRights = $accessRights.val();
    if (accessRights == ''){
        alert("Enter some Value..");
        $accessRights.focus();
    } else {
        $.ajax({
            type: "POST",
            url: "action.php",
            data: {
                'access_rights': accessRights,
                'remail': $row.find(".remail").text(),
                'msg_id': $submitBtn.attr("id")
            },
            cache: true,
            success: function(html){
                $accessRights.val('').focus();
            }  
        });
    }
    return false;
});

您还缺少结束</tr>标记。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

PHP-连续提交在同一页面上

在同一页面上创建多个redux-form并使用相同的按钮提交

使用ajax提交表单后留在同一页面上

PHP在同一页面上获取AJAX数据

在同一页面上使用多个指令

在同一页面上单击按钮后使用ajax发送多个发布请求

获取<select>的值,而无需使用php在同一页面上提交

使用php将内容提交到.txt并停留在同一页面上,而不是转到php页面

标签页不能在同一页面上使用多个

PHP将数据提交到同一页面上的表

使用Express提交发帖请求后如何留在同一页面上?

在同一页面上提交表单,而无需重新加载并使用POST变量

使用nextjs链接同一页面上的页面

如何使用一个jQuery在同一页面上使多个按钮更多?

php,在同一页面上处理多个动态表单

PHP的形式和同一页面上的多个结果与自动刷新

PHP多个包括不能在同一页面上工作

在同一页面上将Ajax转换为PHP

javascript ajax不在同一页面上将数组发送到php

PHP无法捕获Ajax jQuery在同一页面上发送的$ _POST数据

如何使用相同的Spritesheet在同一页面上具有多个CSS动画?

在同一页面上使用多个Google Analytics(分析)事件

如何在同一页面上为多个图使用单个xlabel和ylabel

如何使用Angular.js引导多个模块以在同一页面上显示

我可以在同一页面上使用多个版本的jQuery吗?

使用Twitter的Bootstrap 3在同一页面上的多个导航栏

附言3是否允许在同一页面上使用多个半色调网屏?

使用SoapUI时,是否可以在同一页面上显示多个请求?

无法在同一页面上使用多个jquery幻灯片切换