我正在尝试使用 get 请求“.get()”向我的 php 系统提交出价。
我一直在尝试解释文档,我觉得我的大部分步骤都是正确的。
无论如何,这是我的 html:
<div id="1001AIE0322921TTGOD" class="item">
<input name="userbid" type="input" value="19.95"/>
<input name="email-id" type="hidden" value="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bfc8d7decbdac9dacdffd6c8d6d191dcd0d2" rel="noreferrer noopener nofollow">[email protected]</a>" />
<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 中检索我的项目数据。
感谢任何帮助。
最佳答案
通过阅读您的问题和一些评论,我看到了一些问题,但没有包含所有问题的答案:
这一行:
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 调用之前。
关于jQuery .get(),提交表单内/表单外的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18081714/