首页 新闻 会员 周边

jQuery+ajax参数问题

0
悬赏园豆:100 [已解决问题] 解决于 2015-09-26 00:50

<script type="text/javascript">
    function delete_blog(order_id){
        confirm("您确认要删除吗?");
        if(confirm){
            $.ajax({
                url:'delete/',
                data:{ blog_id:order_id },
                success: function(msg){
                    alert(msg);
                }
            });
        }else{
            return false;
        }
    }
</script>

这是我的js+ajax代码

    function delete(){
        // var_dump($_GET);
        // exit;
        $blog_id = $_GET['blog_id'];
        // var_dump($blog_id);
        // exit;
        $blog = D('blog');
        $z = $blog ->delete($blog_id);
        if($z){
            echo "数据删除成功";
        }else{
            echo "删除数据失败";
        }
    }

这是我的后台代码,后台怎么接收到这个id,使得删除时不用跳转,各位大神多多指教。

帅到掉渣码农9526的主页 帅到掉渣码农9526 | 初学一级 | 园豆:112
提问于:2015-09-24 23:31
< >
分享
最佳答案
0

楼上给你提供了代码,满足你第一点完全足够,你传的是一个ID到后台,直接传过去就行,数据类型可以很多种的,最好是JSON,我给你提供数据几种刷新的方式

1:在数据库删除成功,直接用Juqery,remove掉节点,这种动态页面做的比较多,我写个方法你看下

function deleteR(button) {
            $.prompt('Are you sure to delete this record?', {
                buttons: { Ok: true, Cancel: false },
                opacity: 0.6,
                //prefix: 'jqismooth',
                submit: function (e, r) {
                    if (r) {
                        var that = $(button);
                        that.parent().parent().remove();
                    }
                }
            });
            
        }

2:你再次请求数据,其实就是对前端的数据进行刷新

submit: function(e) {
location.href = '';
}

3:有一些可以在后台进行绑定,你自己看你用的什么

收获园豆:50
稳稳的河 | 老鸟四级 |园豆:4216 | 2015-09-25 09:31
其他回答(3)
0

ajax模式如果是GET后台一般都有对应获取参数的方法:

    <script src="jquery-1.3.2-vsdoc.js" type="text/javascript"></script>

    <script src="json2.js" type="text/javascript"></script>

    <script type="text/javascript">
        $(function() {
            //构造一个json对象,很类似于C#中的匿名类型
            var employee = {
                Name: "chenxizhang",
                Country: "China",
                Orders: [
                    { OrderID: 10248 },
                    { OrderID: 10249 }
                ]
            };

            //发送POST请求,数据也是json格式。但数值部分需要转换为字符串
            $.post("EmployeeHandler.ashx", { data: JSON.stringify(employee) }, function(result) {
                var r = JSON.parse(result);
                alert(r.Message);
            });
        });
    </script>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Runtime.Serialization.Json;
using System.Runtime.Serialization;
using System.IO;
using System.Text;
//必须添加System.ServiceModel.Web和System.Runtime.Serialization的引用
namespace WebApplication1
{
    /// <summary>
    /// $codebehindclassname$ 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class EmployeeHandler : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            var ser = new DataContractJsonSerializer(typeof(Employee));
            var data = context.Request["data"];//获取前台传入的data参数           
var ms = new MemoryStream(Encoding.UTF8.GetBytes(data)); var emp = (Employee)ser.ReadObject(ms); ms.Close(); //此时已经得到了相应的Employee实例,可以进行服务器端的处理 var ser2 = new DataContractJsonSerializer(typeof(ActionResult)); var ms2 = new MemoryStream(); var result = new ActionResult() { Code = 200, Message = "成功" }; ser2.WriteObject(ms2, result); ms2.Position = 0; var buffer = new byte[ms2.Length]; ms2.Read(buffer, 0, buffer.Length); ms2.Close(); context.Response.Write(Encoding.UTF8.GetString(buffer)); //返回结果 } public bool IsReusable { get { return false; } } } [DataContract] public class Employee { [DataMember] public string Name { get; set; } [DataMember] public string Country { get; set; } [DataMember] public OrderItem[] Orders { get; set; } } [DataContract] public class OrderItem { [DataMember] public int OrderID { get; set; } } [DataContract] public class ActionResult { [DataMember] public int Code { get; set; } [DataMember] public string Message { get; set; } } }
收获园豆:50
JackWang-CUMT | 园豆:2866 (老鸟四级) | 2015-09-25 08:06
0

我怎么看你的代码像Php呢~

如果是ashx的话,直接Request.Form["blog_id"]就能取到了。

幻天芒 | 园豆:37175 (高人七级) | 2015-09-25 11:10

是php的代码 ,在ThinkPHP框架里写的

 

支持(0) 反对(0) 帅到掉渣码农9526 | 园豆:112 (初学一级) | 2015-09-26 00:09

@帅到掉渣码农9526: 哈哈,是我看错了,把js+ajax看成了js+ashx。

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2015-09-26 08:50
0

 

想要删除时不跳转. 一般是从前台下手. 后台一般在删除时只是返回一些消息或者状态. 让前台Alert出来.

而你不想跳转,但是想刷新页面上的数据的话. 可以在success的回调function里用Ajax 重新请求加载一次数据.

一般UI插件里都有一个Reload方法.

例如:easy-ui是$('#xxoo').datagrid('reload')

 

 

 

李丶GuanYao | 园豆:1228 (小虾三级) | 2015-09-25 13:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册