【问题标题】:passing .php array into a javascript code jquery/ajax将 .php 数组传递到 javascript 代码 jquery/ajax
【发布时间】:2010-08-14 20:03:54
【问题描述】:

目前我有这段 javascript 代码:

//Display custom confirm box and delete multiple message

$(document).ready(function () {
    $(".delete_button-multiple").click(function () {
        //Get message id as variable
        var id = $(this).attr("id");
        var dataString = 'id=' + id;
        var parent = $(this).parent();
        //Display custom Confirm box  
        jConfirm('Are you sure you want to delete this message?', '', function (r) {
            if (r == true) { //initiate delete message if agreed

                $.ajax({
                    type: "POST",
                    url: "delete-mail_ajax.php",
                    data: dataString,
                    cache: false,

                    success: function () {
                        window.location = "mail_inbox.php";
                    }
                });

                return false;
            }
        });

    });
});


delete-mail_ajax.php:

if($_POST['id'])
{
$id=$_POST['id'];
$id = mysql_escape_String($id);
$sql = "delete FROM mail WHERE mail_id='$id'";
mysql_query( $sql);
} 

这是一个只删除一个邮件项目的工作代码。 我编写了以下代码从复选框中删除多条消息:

        //Multiple delete mail
        if(!empty($_POST['message'])){ 
        $list_mail = $_POST['message'];
        foreach ($list_mail as $messageID){    
        $sql = "delete FROM mail WHERE mail_id='$messageID'";
        mysql_query($sql);
        //deletion complete, refresh the page
        header("Location: mail_inbox.php");
        }
        }//end delete multiple 

我遇到的困难是更改上面的工作代码以合并选定邮件的多项选择和删除。

对这个问题的任何帮助将不胜感激

-卡勒姆

【问题讨论】:

  • 问题到底出在哪里?我真的不明白...选择?我建议使用复选框。
  • 我正在使用复选框。问题是我不确定如何通过 jquery 函数将数组传递到 ajax。

标签: php javascript jquery ajax arrays


【解决方案1】:

假设您使用的是复选框,您的代码将类似于:

var messages = new Array();
$("input[name='mail_items[]']:checked").each(function() {
   messages.push($(this).val());
});

$.ajax({
   type: "POST",
   url: "delete-mail_ajax.php",
   data: { message: messages }  //jQuery should translate this to an array that PHP should understand
   cache: false,
   ...
});

您可能需要对 $_POST['message'] 变量的输入进行 json_decode,但我会首先对这些内容执行 var_dump() 以确保 PHP 在后台执行的操作。暂时无法查看,抱歉。

【讨论】:

  • 谢谢你。我理解除了 var_dump() 和 json_decode 部分之外的所有内容?
  • 那是在 PHP 方面。就像检查一样,做一个 var_dump($_POST['message'])。如果您将其视为一个数组,那么您就是在做生意。如果您将其视为字符串,则必须通过 json_decode 函数将其抛出以使其成为数组。
【解决方案2】:

我猜您无法通过 Ajax 提交表单?有一个简洁的插件可以为您做到这一点:http://jquery.malsup.com/form/

【讨论】:

  • 我遇到的问题是,试图将数组传递给 javascript,然后再传递给 ajax
猜你喜欢
  • 1970-01-01
  • 2015-08-21
  • 2013-03-19
  • 1970-01-01
  • 2013-01-06
  • 2013-08-23
  • 2019-12-24
  • 2023-03-13
  • 2015-08-07
相关资源
最近更新 更多