要向表中插入值,我尝试了此GET xmlhttprequest对象。 URL中的语法正确吗?它不起作用。
document.getElementById('allsubmit').addEventListener('click',sendPost);
var com = document.getElementById('inputcompany').value;
var cat = document.getElementById('selectCategory').value;
var subcat = document.getElementById('selectsubCategory').value;
var descrip = document.getElementById('textdescription').value;
var exp = document.getElementById('datepicker').value;
function sendPost() {
var xhr = new XMLHttpRequest();
xhr.open('GET',"addingthevacancy.php?company='"+com+"'?category='"+cat+"'?subcategory='"+subcat+"'?description='"+descrip+"'?expdate='"+exp,true);
xhr.onprogress = function() {
//
}
xhr.onload = function() {
console.log("Processed..."+xhr.readystate);
console.log(this.responseText);
}
xhr.send();
}
我不知道这是怎么回事。
答案 0 :(得分:1)
几个问题:
&
而不是?
分隔。encodeURIComponent()
进行编码。sendPost()
函数内部的输入值;您的代码是在页面首次加载时设置变量,而不是在用户提交时设置变量。e.preventDefault()
以覆盖默认的提交。通常不建议对服务器上进行更改的请求使用GET
,通常应将POST
用于这些类型的请求。浏览器缓存GET
请求,因此,如果您确实需要这样做,则应添加一个cache-buster参数(一个额外的未使用的参数,该参数包含每次更改的随机字符串或时间戳,只是为了防止URL匹配缓存的网址)。
document.getElementById('allsubmit').addEventListener('click', sendPost);
function sendPost(e) {
e.preventDefault();
var com = encodeURIComponent(document.getElementById('inputcompany').value);
var cat = encodeURIComponent(document.getElementById('selectCategory').value);
var subcat = encodeURIComponent(document.getElementById('selectsubCategory').value);
var descrip = encodeURIComponent(document.getElementById('textdescription').value);
var exp = encodeURIComponent(document.getElementById('datepicker').value);
var xhr = new XMLHttpRequest();
xhr.open('GET', "addingthevacancy.php?company=" + com + "&category='" + cat + "&subcategory=" + subcat + "&description=" + descrip + "&expdate=" + exp, true);
xhr.onprogress = function() {
//
}
xhr.onload = function() {
console.log("Processed..." + xhr.readystate);
console.log(this.responseText);
}
xhr.send();
}