Pagina 1 din 1
eroare functia ajaxSend - Uncaught TypeError
Scris: Mar Feb 23, 2016
de andras
Salut,
Pe local merge ajaxSend, dar pe server cind apelez functia ajaxSend() (cu obiect javascript) imi da eroarea:
Cod: Selectaţi tot
Uncaught TypeError: data[k].replace is not a function ajax.js:7
Care sa fie cauza? Cred ca e de la server dar nu stiu ce. Multumesc.
eroare functia ajaxSend - Uncaught TypeError
Scris: Mie Feb 24, 2016
de MarPlo
Salut
Nu stiu daca e de la sever. In general, erorile din javascript (din browser) nu au legatura cu configuratia serverului.
Posibil sa fie ceva la datele din obiectul transmis la ajaxSend.
Pentru rezolvare ar fi de folos sa pui codul js si acel obiect.
eroare functia ajaxSend - Uncaught TypeError
Scris: Mie Feb 24, 2016
de andras
Se poate vedea pe serverul developper superbit.ro:1003/cms/ => oricare optiune din meniu (preferabil Proiecte ca e mai scurt) => Add => si se adauga orice date (e numai test), chiar si spatii => Save si se vede eroarea in Inspect element. Am testat in Opera. In Modzilla la apasare pe Add imi da eroarea ReferenceError: my_ajax3maa is not defined, desi functia exista in functii.js.
eroare functia ajaxSend - Uncaught TypeError
Scris: Mie Feb 24, 2016
de MarPlo
Nu imi dau seama care e problema, e ceva la datele din parametrul 'data'. In functia ajaxSend(), unde e:
Pune acest cod si vezi ce arata in consola:
eroare functia ajaxSend - Uncaught TypeError
Scris: Mie Feb 24, 2016
de andras
Am pus console.log(data); si imi afiseaza obiect js cu date de test:
Cod: Selectaţi tot
beneficiar: "test beneficiar"
clasa: "Proiecte"
datainc: "test data"
datasfi: "test data"
denumire: "test denumire"
id: 0
numeid: "proiect_id"
stare: "test stare"
tabela: "proiecte"
Sint datele pe care ma astept sa fie preluate in obiect js data si apoi preluate cu POST in ajax.
- Edit:
Cred ca am gasit problema: in obiectul js data exista o variabila numerica $id: 0 pe care functia replace n-o poate trata. O sa modific.
eroare functia ajaxSend - Uncaught TypeError
Scris: Mie Feb 24, 2016
de MarPlo
Daca pui acel numar ca sir, adica: '0', e posibil sa-l recunoasca.
In php:
In JS:
Cod: Selectaţi tot
var id =0;
var obj ={};
obj["'"+ id +"'"] ='ceva';
eroare functia ajaxSend - Uncaught TypeError
Scris: Mie Feb 24, 2016
de andras
L-am pus ca sir si acum functioneaza. Multumesc!
eroare functia ajaxSend - Uncaught TypeError
Scris: Mie Feb 24, 2016
de MarPlo
Ma bucur. Am modificat in functia ajaxSend() ca sa functioneze bine si cu key /valori numerice fara sa fie necesare alte conversii.
Asta e functia in noua versiune.
Cod: Selectaţi tot
/* Ajax Function
Send "data" to "php", using the method added to "via", and pass response to "callback" function
data - json object with data to send, name:value; ex.: {"name1":"val1", "name2":"2"}
php - address of the php file where data is send
via - request method, a string: 'post', or 'get'
callback - function called to proccess the server response
*/
function ajaxSend(url, data, via, callback){
var obajx = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); // XMLHttpRequest object
//put data from "data" into a string to be send to "php"
var str_data ='';
for(var k in data){
k = k.toString(); //convert numeric key to string
//build the string with data to be sent
str_data += k +'='+ data[k].toString().replace(/\?/g, '%3F').replace(/=/g, '%3D').replace(/&/g, '%26').replace(/[ ]+/g, '%20').replace(/[\+]/g, '%2B') +'&';
}
str_data = str_data.replace(/&$/, ''); //delete ending &
//send data to php
obajx.open(via, url, true);
if(via =='post') obajx.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
obajx.send(str_data);
//check the state request, if completed, pass the response to callback function
obajx.onreadystatechange = function(){
if(obajx.readyState == 4){
/// alert(obajx.responseText); //for debug
callback(obajx.responseText);
}
}
}
eroare functia ajaxSend - Uncaught TypeError
Scris: Mie Feb 24, 2016
de andras
Am inlocuit-o si a mers din prima.