如何在ajax中将if数据传递给json

时间:2014-09-09 05:11:01

标签: javascript jquery ajax json

如何在$ .ajax中为以下条件执行if else:如果ID字段为> 0,则仅传递给json的id字段,否则传递其他所有内容。谢谢你的帮助。格兰特

$.ajax({
    url : 'artist_update_event.php',
    type : 'POST',
    dataType : 'json',
    data: {
        artist_create_event_name: $('#artist_create_event_name').val(),
        artist_create_event_desc: $('#artist_create_event_desc').val(),
        name: $('#name').val(),
        city:  $('#city').val(),
        state:  $('#state').val(),
        location:  $('#location').val(),
        zipcode:  $('#zipcode').val(),
        event_address : $('#event_address').val(),
        event_address2 : $('#event_address2').val()
    },
    success : function(data){
        $('#art_event_message').removeClass().addClass((data.error === true) ? 'error' :     'success')
            .text(data.msg).show(500);
        if (data.error === true) {
            if (data.goto == 1)       {
                delete json;
            }
            else {
                $('#artist_create_event').show(500);
                delete json;
            }
        }
        if (data.error === false) {
            $('#artist_create_event').show(500);
            delete json;
        }
    },
    error : function(XMLHttpRequest, textStatus, errorThrown) {
        $('#art_event_message').removeClass().addClass('error')
        alert('The error was: '+errorThrown);
        alert('The error was: '+XMLHttpRequest);
        alert('The error was: '+textStatus);
        //                  .text('response.Text').show(500);
        $('#artist_create_event').show(500);
    }
});

return false;
}

});

3 个答案:

答案 0 :(得分:2)

创建一个dataToPass变量,并根据您的情况设置其值。

var dataToPass = (obj.id && obj.id > 0) ? 
                     { ID: obj.id } :
                     { /* everything else */ }

答案 1 :(得分:2)

在调用$.ajax之前在变量中创建数据,然后将变量传递给它。

var dataObj;
if (id > 0} {
    dataObj = { id: id };
} else {
    dataObj = {        
        artist_create_event_name: $('#artist_create_event_name').val(),
        artist_create_event_desc: $('#artist_create_event_desc').val(),
        name: $('#name').val(),
        city:  $('#city').val(),
        state:  $('#state').val(),
        location:  $('#location').val(),
        zipcode:  $('#zipcode').val(),
        event_address : $('#event_address').val(),
        event_address2 : $('#event_address2').val()
    };
}
$.ajax({
    url : 'artist_update_event.php',
    type : 'POST',
    dataType : 'json',
    data: dataObj,
    ...
}

答案 2 :(得分:0)

你必须先在php中使用id,然后才能在java脚本中传递id ajax code

var name_string='<?php echo $irfan;?>';
var nam=parseInt(name_string);

例如

$user_id=get from db here and after it send in $ajax

$(document).ready(function(){         

        var name_string='<?php echo $irfan;?>';// here this line to get data in javascript 
        var nam=parseInt(name_string);// here this line to parse data string to int 
        $('#view_more').click(function(){
          $.ajax({                   
            url: '/15_augs/events/mytest/',
            cache: false,
            type: 'POST',
            data: { no:x,myname:nam,},
            dataType: 'HTML',
            success: function (results) {
        }
}