Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Jquery post:使用foreach循环处理$\u post复选框?_Php_Jquery_Ajax_Post_Foreach - Fatal编程技术网

Php Jquery post:使用foreach循环处理$\u post复选框?

Php Jquery post:使用foreach循环处理$\u post复选框?,php,jquery,ajax,post,foreach,Php,Jquery,Ajax,Post,Foreach,就其本身而言,当controlpanel.php输入html名称为checkbox[]时,此php可用于删除多个值,但是我不确定如何使用jquery处理这些$u POST值?我尝试在id上添加复选框[],但没有成功。当我尝试vardump$\u POST时,无论勾选了多少复选框,每次都得到相同的值 test_process.js $('#delete_submit').on('click', function(event) { alert("Test"); event.preve

就其本身而言,当controlpanel.php输入html名称为checkbox[]时,此php可用于删除多个值,但是我不确定如何使用jquery处理这些$u POST值?我尝试在id上添加复选框[],但没有成功。当我尝试vardump$\u POST时,无论勾选了多少复选框,每次都得到相同的值

test_process.js

$('#delete_submit').on('click', function(event) {
    alert("Test");
    event.preventDefault();
    var delete_value = $('#checkbox').val();
    $.post('ajax/name.php', {delete_template: delete_value}, function(data) {
        $('div#delete_data').text(data);
   });      
});
ajax/name.php

<?php
include('C:\xampp\htdocs\email1\class\db.php');
require_once('C:\xampp\htdocs\email1\config\db.php');
require_once('C:\xampp\htdocs\email1\class\Login.php');

$login = new Login();
$user = $_SESSION['user_name'];
$db = new Database();
$db->connect();

    //delete
if (isset($_POST['delete_template'])) {
foreach($_POST as $value){
        $db->delete('templates','template_name="'.$value.'"');
        echo $value. " has been successfully deleted.";
}
}
Controlpanel.php

<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
</head>

<form action="ajax/name.php" name="delete_template_form" id="delete_template_form" method="post">
<?php print "<table border=\"1\">
<th>Template Name</th>
<th>Template Description</th>
<th> </th>";
foreach($res as $row){ 
echo "<tr>";
echo "<td>". $row['template_name']. "</td>";
echo "<td>". $row['template_description']. "</td>";
echo "<td><input type=\"checkbox\" value=".$row['template_name']." name=\"checkbox\" id=\"checkbox\"></td>";
echo "<tr/>"; 
} 
print "</table>"; ?>
<br/><button type="button" name="delete_submit" id="delete_submit">Delete</button>
</form>
<div id="delete_data"></div>

<script type="text/javascript" src="test_process.js"></script>
</body>
</html> 
id应该是唯一的,因为您对每个复选框使用相同的id->id=\checkbox\,var delete_value=$'checkbox'.val;将仅选择id=\checkbox\的第一个实例

1-将您的复选框更改为数组名=\checkbox[],将您的id更改为唯一的id=\checkbox.$row['id']-

3-然后在php中,循环检查复选框

if (isset($_POST['checkbox'])) {
foreach($_POST['checkbox'] as $value){
        $db->delete('templates','template_name="'.$value.'"');
        echo $value. " has been successfully deleted.";
}

除了jquery.serialize方法外,它的工作原理非常好,因为jquery.serialize方法在有空格时不允许遍历整个模板名,这是因为html中的语法不正确。您的value属性需要用引号封装。更改值=.$row['template_name']。to value=\.$row['template\u name'.\or value='.$row['template\u name'.'
$.post('ajax/name.php', $('#delete_template_form').serialize() , function(data) {
      $('div#delete_data').text(data);
});    
if (isset($_POST['checkbox'])) {
foreach($_POST['checkbox'] as $value){
        $db->delete('templates','template_name="'.$value.'"');
        echo $value. " has been successfully deleted.";
}