Salut,
Intr-un formular am un array asociativ constituit din variabilele POST (id element=>valoare variabila POST). Care este cea mai eficienta modalitate de a-l transmite prin ajax catre fisierul PHP apelat cu ajax (adica model in MVC)?
Array asociativ cu date de formular trimis prin ajax
-
- Mesaje: 430
Array asociativ cu date de formular trimis prin ajax
MarPlo
Mesaje: 4343
Salut
In JavaScript array-ul asociativ e de fapt obiect, creat cu: {prop:val,}.
Eu folosesc aceasta functie ajaxSend(), cum e in exemplu de dupa ea.
Iar in php:
- Daca acel array e de fapt un sir /text (cu mai multe key=>val) intr-un camp de formular, e bine sa fie intr-un format JSON valid; si il poti trimite direct ca sir JSON cu Ajax la php.
In JavaScript array-ul asociativ e de fapt obiect, creat cu: {prop:val,}.
Eu folosesc aceasta functie ajaxSend(), cum e in exemplu de dupa ea.
Cod: Selectaţi tot
<script>
/* 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);
}
}
}
//Example Usage
var form_data = {'id1':'val 1', 'id2':'val 2'}; //object with data to send
ajaxSend(form_data, 'test.php', 'post', function(resp){
alert(resp);
});
</script>
Cod: Selectaţi tot
$id1 = trim($_POST['id1']);
$id2 = trim($_POST['id2']);
//...
andras
Mesaje: 430
La varianta cu sir JSON intr-un cimp hidden nu m-am gindit, der ideea este foarte buna. Voi studia variantele.
Subiecte similare
-
Separare array de obiecte în mai multe array-uri
JavaScript - jQuery - Ajax
Primul mesaj
Am un array de obiecte, si pentru crearea unui grafic trebuie să îl împart în 3 array-uri diferite. Cum se face cu JS?Ultimul mesaj
const dataOverview = ;...
Este simplu, aplici functia map() .
var series1 = dataOverview.map(x => x.series1);
var series2 = dataOverview.map(x => x.series2);
var... -
Adaugare array in acelasi array JS
JavaScript - jQuery - Ajax
Primul mesaj
Incerc sa adaug un array in acelasi array in javascript, Dar se pare ca nu functioneaza; al treilea element se adauga incontinuu.Ultimul mesaj
Iata codul:
var...
Nu functioneaza cum vrei fiindca adaugi aceeași referință la array. De aceea, când array-ul se actualizează, cel din interior va fi si el actualizat.... -
Cannot use object of type mysqli_result as array
PHP - MySQL - XML
Primul mesaj
Salut, m-am lovit de aceasta eroare in scriptul meu...Ultimul mesaj
Cannot use object of type mysqli_result as array
<?php
include header.php ;...
Am vazut ca metoda executeQuery() nu transforma in vreun fel datele de la mysqli (cum am presupus ca le returneaza ca obiect) ci le returneaza direct... -
Id distinct cu insumare valori din array
PHP - MySQL - XML
Primul mesaj
Salutare,Ultimul mesaj
Am un array de obiecte de forma:
$arr =
Cum pot face un array de obiecte cu id-uri distincte dar cu suma pentru cantitate si...
multumesc foarte mult de ajutor -
Produsul Dot a doua array in Javascript
JavaScript - jQuery - Ajax
Primul mesaj
Cum se poate implementa eficient o metoda dotProduct (pentru a obține produsul Dot din două array) fără a importa alte biblioteci Javascript?Ultimul mesaj
De...
Iată o metodă.
Se foloseste funcția map() pentru a crea un nou array cu rezultate înmulțite ale fiecărui index, apoi se aplica funcția reduce()... -
parametru din array in query cu laravel
PHP - MySQL - XML
Primul mesaj
Salutare,Ultimul mesaj
din frontend primesc urmatorul array:
$arrClienti =
dupa care ii fac implode
$idClienti = preg_replace('/ /i', '', implode( , ,...
Dupa multe sapaturi, am ajuns la concluzia ca nu se poate rula ca parametru o matrice. Doar daca parametrul cu matricea este rulat intr-un loop....