【问题标题】:jquery ajax php autosave functionjquery ajax php自动保存功能
【发布时间】:2011-12-29 10:48:34
【问题描述】:

我目前正在为客户开发一个在线广告网站,但我遇到了一个大问题,我是 stcuk! 所以我为广告发布设置的系统是这样的,用户转到页面并开始从三个下拉菜单中进行选择,然后使用输入框将确切位置放在那里。但是作为用户类型,我想自动保存他们在 cookie 中输入的内容......但如果它是新的,我只需要替换 cookie 数据的信息,否则什么都不做......现在我不会抛出任何错误或任何东西但是,如果不替换它,我无法更新内容 html标记:

<?
if(isset($_COOKIE['adContent'])){
    $AD = explode('/',$_COOKIE['adContent']);
    //print_r($AD); 
}
if(isset($_COOKIE[md5('UniqueAdId')])){

}else{
$path = "/";
$expire =  time() + 7200;
$r = time().'+'.rand().'+'.$_COOKIE[md5('id')];
setcookie(md5('UniqueAdId'),$r,$expire,$path);  
}
?>
<form id="post-ad" style="position:relative;" enctype="multipart/form-data">
    <fieldset>
    <legend>Select Ad Location</legend>
    <table>
    <tr><td><select id="state" name="state"><option value="" disabled>State</option><? states(); ?></select></td></tr>
    <tr><td><select id="city" name="city" style="display:none"><option value="" disabled>Select a state first</option></select></td></tr>
    <tr><td><input id="area" type="text" name="area" value="Select a city first" style="display:none; width:200px;"></td></tr>
    <tr><td><button id="mothn" style="display:none;">Next</button></td></tr>
    </table>
    </fieldset>
    <input id="Apart" type="hidden" value="<? echo md5(1); ?>" /> 
</form>

jquery:

<script>
$('button').button();

$('#mothn').click(function(event){
    event.preventDefault();
    var part = $('#Apart').val();
    $('pload').html('<img src="source/image/lbl.gif">');
    var formdata = 'why=paa&p='+part+'&'+$('#post-ad').serialize();
    $.post('source/php/bots/functions/quickie.php',formdata,function(data){
            $('form').html(data);
            $('pload').html('');
        });
});
$('#post-ad fieldset select').change(function(e) {
    var id = $(this).attr('id');
    switch(id){
        case 'state':
            var state = $('#'+id).val();
            get_citys(state);
        break;  
        case 'city':
            $('#area').val('Area (Optional)').slideDown();
        break;
        case 'area':
            $('##post_ad2').slideDown();
        break;

    }

});
$('#area').keypress(function(){
    $('#mothn').slideDown();
    var formdata = 'why=as&'+$('#post-ad').serialize();
    $.post('source/php/bots/functions/quickie.php',formdata,function(data){
        // just stores current form into a cookie for saving purposes
        });
    });
function get_citys(state){
    var data = "why=gc&s="+state;   
    $.post('source/php/bots/functions/quickie.php',data,function(data){
        $('#city').html(data).slideDown();

    });


}
</script>

php 脚本:

case 'as':
        // auto save
        if(isset($_COOKIE['adContent'])){
            //$more = $_COOKIE['adContent'].'/';
            $cont = explode('/',$_COOKIE['adContent']);
            print_r($cont);
        echo "<br>";
            foreach($cont as $x){
                foreach($_POST as $key=>$p){
                    if($x == $p){
                        unset($_POST[$key]);
                    }else{
                    $cont[$key] = $_POST[$key]; 
                    }
                }
            }
            $put = implode('/',$cont);
        print_r($cont);
        }else{ 
        $more = implode('/',$_POST);
        $path = "/";
        $expire =  time() + 7200;
        setcookie('adContent',$more,$expire,$path);
        }


    break;

【问题讨论】:

    标签: php jquery ajax cookies


    【解决方案1】:

    如果您只是想在客户端保存表单详细信息,请尝试这样的插件;

    http://rikrikrik.com/jquery/autosave/

    php不需要做任何事情,只要让jquery在特定条件下恢复表单就可以了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-30
      • 2011-05-29
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多