Для этого вам нужно будет использовать AJAX
, мне нужно, чтобы они были обработаны на бэкэнде.Предполагая, что вы используете чистый JavaScript, а не библиотеку, вы захотите сделать что-то вроде этого:
//for cross browser support
var XMLHttpFactories =
[
function () {return new XMLHttpRequest()},
function () {return new ActiveXObject("Msxml2.XMLHTTP")},
function () {return new ActiveXObject("Msxml3.XMLHTTP")},
function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];
//find an xmlhttpfactory that will work
function createXMLHTTPObject()
{
var xmlhttp = false;
for (var i=0;i<XMLHttpFactories.length;i++) {
try {
xmlhttp = XMLHttpFactories[i]();
}
catch (e) {
continue;
}
break;
}
return xmlhttp;
};
//process post variables for your AJAX request
function parsePostData(postData)
{
var appendString = '?';
for(key in postData)
{
appendString += key + '=' + postData[key] + '&';
};
appendStrTrim = appendString.substring(0, appendString.length-1)
return appendStrTrim;
};
//this is where the magic happens
function sendRequest(url,callback,postData)
{
var req = createXMLHTTPObject();
if (!req) return;
var method = (postData) ? "POST" : "GET";
req.open(method,url,true);
if (postData){
req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
if (postData.passwd){
req.withCredentials = true;
}
}
req.onreadystatechange = function () {
if (req.readyState != 4) return;
if (req.status != 200 && req.status != 304) {
var errorCode = 'HTTP error: ' + req.status;
callback(errorCode);
}
var response = JSON.parse(req.response)
if (response.jquery){
console.log(req.getAllResponseHeaders());
}
if(response.data && response.data.modhash){
reddit.control.setModHash(response.data.modhash )
}
if(response.data && response.data.children && typeof callback =='function'){
callback(response.data.children);
}else if(response.data && typeof callback=='function'){
callback(response.data);
}else if(typeof callback== 'function'){
callback(response);
};
}
if (req.readyState == 4) return;
var postString = parsePostData(postData);
req.send(postString);
};
Итак, когда вы захотите изменить переменную PHP, вы бы назвали sendRequest()
какИтак:
`sendRequest('http://example.com/changeThosePHPVariables.php', function(){/*do this when done*/}, {amt: 'value', f: 'value'})
тогда вам просто нужно переназначить переменные, используя changeThosePHPVariables.php
, где вы найдете их как $_POST['amt']
и $_POST['f']
.
Все это становится намного прощеесли вы используете библиотеку типа JQuery, где вы можете просто использовать $ .ajax () для грязной работы.