使用ajax调用返回php值时出错

时间:2013-07-08 04:02:26

标签: javascript ajax

我有一个问题,我想使用方法帖子使用ajax调用发送数据,所以我喜欢这样:

       jQuery.noConflict();

        jQuery(document).ready(function () {
        $("input#submit").click(function(){
            $.ajax({
                type: "POST",
                url: "ajax?uid="+<?php echo   $sf_user->getGuardUser()->getId() ?>+"fid="+<?php echo $user->getId() ?>+"fn="+<?php echo $user->getfirstName() ?> +"ln="+<?php echo $user->getlastName() ?>, // 
                data: $('form.contact').serialize(),
                success: function(msg){
                    $("#thanks").html(msg)
                    $("#form-content").modal('hide');   
                },
                error: function(){
                    alert("Something is wrong!");
                }
            });
        });
    });
</script>

但它似乎对我不起作用,我得到了这个奇怪的错误:

ReferenceError: Jean is not defined url: "ajax?uid="+1+"fid="+13+"fn="+Jean +"ln="+paul, //

非常奇怪,因为当我删除fn and ln并且我只保留数字值时效果非常好?

2 个答案:

答案 0 :(得分:1)

您需要将字符串值括在''中。像Jean这样的值是一个字符串值,因此需要将其括在''中,否则它将被视为变量并在执行期间当它被查找时,js引擎将找不到它导致所述错误。

url: "ajax?uid="+<?php echo   $sf_user->getGuardUser()->getId() ?>+"fid="+'<?php echo $user->getId() ?>'+"fn="+'<?php echo $user->getfirstName() ?>' +"ln="+'<?php echo $user->getlastName() ?>', // 

答案 1 :(得分:0)

jQuery.ready()是一个在加载页面时触发的事件。

因此,只有访问DOM的代码才应该处于就绪处理程序中。如果它是一个插件,它不应该在准备好的事件中。

因此,请不要将ajax调用放在就绪函数中。