Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Ajax发送第一个空白数据_Php_Javascript_Jquery_Ajax_Json - Fatal编程技术网

Php Ajax发送第一个空白数据

Php Ajax发送第一个空白数据,php,javascript,jquery,ajax,json,Php,Javascript,Jquery,Ajax,Json,我的代码的这一部分就是问题所在: <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script> <script type = "text/javascript"> matches = google.contentmatch.getContentMatches(); $(document

我的代码的这一部分就是问题所在:

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script type = "text/javascript">

matches = google.contentmatch.getContentMatches();
    $(document).ready(function()
    {
        var messageid
        for(var match in matches)
        {
            for(var key in matches[match])
            {
                if(key == 'message_id')
                {
                    messageid = matches[match][key];
                }

            }
        }




        var name = "Email Test";
        var url = 'https://mail.google.com/mail/u/0/#all/' + messageid;
        var encodedurl = encodeURIComponent(url);
        var dataValues = "name=" + name + "&url=" + encodedurl;
        $('#crmbtn').click(function(){
            $.ajax({
                type: 'GET',
                data: dataValues,
                url: 'http://someurl',
                success: function(){
                     alert('Sent To CRM')
                }
            });
            return false;
        });
    });
gadgets.window.adjustHeight(50);
</script>

    <form id="myForm">
        <input type='button'  name='submit' id='crmbtn' value='Send To CRM' />
    </form>

matches=google.contentmatch.getContentMatches();
$(文档).ready(函数()
{
var消息ID
for(匹配中的变量匹配)
{
for(匹配项中的var键[match])
{
如果(键=='message_id')
{
messageid=matches[match][key];
}
}
}
var name=“电子邮件测试”;
var url='1〕https://mail.google.com/mail/u/0/#all/'+messageid;
var encodedurl=encodeURIComponent(url);
var dataValues=“name=“+name+”&url=“+encodedurl;
$('#crmbtn')。单击(函数(){
$.ajax({
键入:“GET”,
数据:数据值,
网址:'http://someurl',
成功:函数(){
警报('发送到CRM')
}
});
返回false;
});
});
小工具。窗户。调节高度(50);

问题是,我的代码执行了我希望它执行的操作,但它没有在第一次将空白数据发送到另一个php页面,然后再发送正确的数据时发送数据。我猜这就是我编写ajax函数的方式

您还需要
encodeURIComponent
name参数:

var name = encodeURIComponent("Email Test");
…
var dataValues = "name=" + name + "&url=" + encodedurl;
此外,最好将该事件绑定到表单的
submit
处理程序并阻止该操作,如:

<form id="myForm">
    <input type='submit' name='submit' id='crmbtn' value='Send To CRM' />
</form>
当您在对象上迭代时,请始终选中
hasOwnProperty

for(var match in matches)
{
    if (matches.hasOwnProperty(match)) {
        …
这只是一个猜测(我需要看到更多的代码…),但如果
#crmbtn
是一个链接,则需要更改:

$('#crmbtn').click(function(){
致:

以防止打开链接页面


编辑:根据您的更新,我认为这就是问题所在,您可能正在提交表单,但如果没有
操作
属性,表单会自动提交。

我们可以看到更多您的代码吗?目前我看不出有什么问题。是的,请给我一点时间。在对对象进行迭代时,始终使用分号结束您的语句,并始终选中
hasOwnProperty
。OP的添加已经废弃了您的答案。;)此外,jQuery规范化了
返回false
,因此无需进行更正。@Marcel Korpel我注意到并更新了,这似乎毕竟是个问题。不,按钮的默认类型不是
提交
。此外,它是一个带有类型按钮的
input
元素,只有当它是
submit
时,它才会在默认情况下提交表单。@Marcel Korpel我不确定单击ID时
return false
是否会阻止表单提交。现在我在想:这可能是真的。我认为OP需要阻止
表单
提交。
$('#crmbtn').click(function(){
$('#crmbtn').click(function(event){
    event.preventDefault();