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();