我正在尝试使用get请求“.get()”。
向我的php系统提交出价我一直试图解释文档,我觉得我的大部分步骤都是正确的。
无论如何,这是我的HTML:
<div id="1001AIE0322921TTGOD" class="item">
<input name="userbid" type="input" value="19.95"/>
<input name="email-id" type="hidden" value="whatever@iwin.com" />
<input type="button" class="submit-button" value="click"/>
</div>
这是我的javascript:
$(document).ready(function(){
var email = $("input[name=email]").val();
var item = $('div').attr('id');
var bid = $("input[name=userbid]").val();
$('.submit-button').click(function(){
$.get(
"http://qwicksale.com/classes/insertbid.php",
{
item-id: item,
email-id: email,
userbid: bid
}
);
});
});
显然,我的预期结果是能够将出价发布到后端。我会使用form.serialize()的东西,但我正在从div的id中检索我的项目数据。
感谢任何帮助。
答案 0 :(得分:2)
您正在检索READY函数内部输入的值,这些值仅在页面加载时被调用一次。您需要将这些行移动到CLICK函数,以便获得当前值。
$(document).ready(function(){
$('.submit-button').click(function(){
var email = $("input[name=email]").val();
var item = $('div').attr('id');
var bid = $("input[name=userbid]").val();
$.get(
"http://qwicksale.com/classes/insertbid.php",
{
"item-id": item,
"email-id": email,
"userbid": bid
}
);
});
});
为了理智,编辑引用数据对象键。
答案 1 :(得分:2)
通过阅读你的问题和几条评论,我看到了一些问题,但没有答案包含所有问题:
这一行:
var item = $('div').attr('id');
获取页面上第一个div的ID,可能不是您要查找的那个。相反,做这样的事情:
var item = $(this).closest('.item').attr('id');
其次,对象文字中不能包含-
。将您的对象更改为:
{
'item-id': item,
'email-id': email,
userbid: bid
}
第三,听起来你受到同一原产地政策的限制。除非使用JSONP或CORS,否则不能从浏览器执行跨域ajax请求。
第四,对数据进行更改或执行某些操作的请求通常应为POST
个请求,而不是GET
。
问题2和3应该出现在您的错误控制台中。
编辑另一个大问题:您正在抓取页面加载时要发送的值,因此如果有人更改了这些值,则更改将不会发送到服务器。在ajax调用之前,将检索值的三行放在click处理程序中。
答案 2 :(得分:1)
此解决方案无需跳过serialize()
即可完成工作。
$(document).ready(function () {
$('.submit-button').click(function (event) {
var $item = $(this).closest('.item');
var formData = $(':input', $item).serialize() + '&item-id=' + $item.attr('id');
$.get('http://qwicksale.com/classes/insertbid.php', formData, function (response) {
// Handle the response
});
event.preventDefault();
});
});
答案 3 :(得分:0)
老兄,不确定你的错误,但是当我尝试小提琴的时候我就是这样 &#39;访问控制......&#39;
这里我修改了Fiddle Demo
$.getJSON(
"http://qwicksale.com/classes/insertbid.php?item-id="+item+'&email-id='+email+'&userbid='+bid+"&format=json&callback=?",
function(data) {
console.log(data);
});
FYI
错误输入 致命错误:未捕获的异常&#39; PDOException&#39;消息&#39; SQLSTATE [23000]:完整性约束违规:1048列&#39; User_email&#39;不能为空&#39;在/var/zpanel/hostdata/zadmin/public_html/qwicksale_com/classes/insertbid.php:47 在 insertbid.php:
答案 4 :(得分:-1)
您是否尝试将表单提交给服务器?
如果是这种情况,您将需要使用$.post
。 http://api.jquery.com/jQuery.post/
另外,正如其他答案所指出的那样,您的对象格式不正确,所以即使我们确定您确实需要post
或get
也不会有效。
{
"item-id": item,
"email-id": email,
"userbid": bid
}