PDA

View Full Version : Array and Arraycount on php



Programmers
21 Nov 2013, 11:34 AM
Extjs version 4.2.1
Internetexplorer 10 or 11

Array create:


var testArray = ['Preis 1', 'Preis 2', 'Preis 3'];


in ExtJs not Works:

return from php:
Text is returned, but count rises 1



Ext.Ajax.request({method:'POST', url:'testphp.php?, params:{iArray:testArray},
success:function(response) {alert(response.responseText)}
});


in JQuery works:
Text is returned, and count rises 3



$.ajax({type:"POST", url:'testphp.php, data:{iArray:testArray},
success:function(response) {alert(response)}
});



in php:



$iArray = $_POST["iArray"]; $iCount = count($iArray);
echo $iArrays . $iCount;


why it not works with ExtJS

bye programmers

scottmartin
21 Nov 2013, 12:02 PM
var testArray = ['Preis 1', 'Preis 2', 'Preis 3'];
console.log(testArray.length); // 3

Programmers
22 Nov 2013, 7:17 AM
hallo scottmartin, naja, das ist javascript ich rede von übergabe nach php. also nochmal, es wird mit Extjs das array nicht sauber an php übergeben. in php steht count(iArray) 1 und nicht 3 aber mit JQery geht es: count(iArray) ist 3. und noch was ist merkwürdig, das array selbst wird auch nicht mit Extjs an php sauber übergeben. aber mit JQuery.

scottmartin
22 Nov 2013, 8:30 AM
Something like this:



var testArray = ['Preis 1', 'Preis 2', 'Preis 3'];

Ext.Ajax.request({
method: 'POST',
url: 'testphp.php',
params:{
iArray: Ext.encode(testArray)
},
success:function(response) {
console.log(response.responseText);
}
});




<?php

$iArray = $_POST["iArray"];
$items = explode(",", $iArray);

var_dump($items);

$iCount = count($items);
echo $items . $iCount;

?>

Programmers
22 Nov 2013, 1:06 PM
Hi scottmartin,
danke,

bei ExtJs rückgabe: ["[1","3","15]"]
bei JQery rückgabe: ["1","3","15"] ok

lösung:



var iBeilageArray = new Array();

var iAnzahlDaten = hauptAuswahlGrid.getStore().getCount(); for (var i = 0; i <= iAnzahlDaten - 1; i++) {
if (hauptAuswahlGrid.getStore().getAt(i).data.hptcheck == true){
BeilageArray.push(hauptAuswahlGrid.getStore().getAt(i).data.hptindex);}};
if (iBeilageArray.length == 0) {return 0;};

Ext.Ajax.request({method:'POST', url:'adfoods.php?fodWahlen=6', params:{
beiarray:Ext.encode(iBeilageArray), hptgroup:iHauptGruppe, hptsuche:beilageEditIndex},
success:function(response) {response.responseText}});


in php:




$fodWahlen = $_GET["fodWahlen"];

switch ($fodWahlen){
case 6: $hptgroup = $_POST["hptgroup"]; $hptsuche = $_POST["hptsuche"];
$beiarray = $_POST["beiarray"];
$iReplace = str_replace('[', '', str_replace(']', '', $beiarray));
$beiItems = explode(',', $iReplace); $beicount = count($beiItems);

for ($i = 0; $i <= $beicount - 1; $i++) {
$belagString = $hptgroup . " AND hpthaupt = "
. $beiItems[$i] . " AND hptsuche = ". $hptsuche;
$results = "DELETE FROM artunter WHERE hptgroup = " .$belagString;
echo mysql_query($results) or die(0);}; break;}



jetzt bei ExtJs rückgabe: ["1","2","15"] ok

bye programmers