Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Array als Config übergeben

Frage Entwicklung JavaScript

Mitglied: ottscho

ottscho (Level 2) - Jetzt verbinden

03.04.2013 um 11:25 Uhr, 2455 Aufrufe, 7 Kommentare

Hallo,

ich habe eine jquery aufruf, welche per load einen Wert von einem PHP Script entgegen nimmt:

01.
$("#selectbox_1").load("/OttAttrSearch",{cat: categoryID, field: field, attr1: value, attr2: ''});
Soweit geht das auch.
Nun sind aber die Werte, welche an das PHP Script gehen dynamisch. Manchmal gibt es attr2 und manchmal nicht.

Jetzt habe ich ein Array mit folgendem Aufbau:

01.
var attrArray = {}; 
02.
attrArray['attr1'] = 'test'; 
03.
attrArray['attr2'] = 'test2';
Perfekt wäre natürlich, wenn ich nun das komplette Array übergeben kann.
Aber ich denke das geht nicht.

Mein Versuch war nun, dass Array in mein Zeichenstring zu bringen:
01.
var output = ''; 
02.
output += 'cat:categoryID'; 
03.
output += ',field:field'; 
04.
$.each(attrArray, function(key, value) { 
05.
   output += "," + key + ":"  + value; 
06.
}); 
07.
alert(output);
Nun muss ich den String innerhalb dem {} bei .load übergeben.

01.
$("#selectbox_1").load("/OttAttrSearch",{output);
Kann mir jemand weiterhelfen?
Evtl. mache ich es ja auch komplett falsch.

Danke

Mitglied: nxclass
03.04.2013 um 15:15 Uhr
var attrArray = {};
... beachte, dass { ... } kein Array ist, sondern ein Objekt (zwar ist Array auch ein Objekt ....)

01.
/* setze default Werte */ 
02.
var attrObj = { cat: categoryID, field: field }; 
03.
 
04.
/* setze zusätzliche Werte */ 
05.
attrObj.attr1 = 'value1'; 
06.
attrObj.attr2 = 'value2'; 
07.
/* usw. */ 
08.
 
09.
/* call */ 
10.
$("#selectbox_1").load( "/OttAttrSearch", attrObj );
Bitte warten ..
Mitglied: ottscho
03.04.2013 um 15:33 Uhr
danke dir ;)

Um mal beim Beispiel zu bleiben:

01.
var attrObj = {}; 
02.
attrObj.cat = 'categoryID';  
03.
attrObj.field = 'field'; 
sollte dann gehen, oder?
Frage ist dann nur, wie mache ich den Wert nach dem . Variable:
01.
$.each(attrArray, function(key, value) {  
02.
   attrObj.{key} = value;  
03.
});
Bitte warten ..
Mitglied: Guenni
03.04.2013 um 19:14 Uhr
Hi ottscho,

du kannst mit JSON PHP-Arrays an JavaScript übergeben. Einfaches Array-Beispiel:

01.
$array1 = array("wert1","wert2","wert3");
Übergabe an eine JavaScript-Funktion:

01.
test1(<?php echo json_encode($array1);?>);
In Ansicht->Quelltext der Seite steht nun: test1(["wert1","wert2","wert3"]);.

Dieses Array kannst du in der JavaScript-Funktion ganz normal verarbeiten.

Allerdings kann JavaScript keine assoziative Arrays verarbeiten, sondern nur nummerisch indizierte.

Hier musst du den Index in der JavaScript-Funktion selber basteln. Ein assoziatives Array-Beispiel:

01.
$array2 = array("cat" => "wert1", "field" => "wert2", "attr1" => "wert3");
Die Übergabe an eine JavaScript-Funktion machst du wie oben, allerdings steht jetzt im Seitenquelltext:

test2({"cat":"wert1","field":"wert2","attr1":"wert3"});.

Beachte die geschweiften Klammern: Das ist nun ein Objekt. In JavaScript gibt es die for . . . in-Schleife: for(index in Objekt).

Damit kannst dun nun auf die Objektinhalte zu greifen. Beispiel:

01.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
02.
<html> 
03.
<head> 
04.
<title>Untitled</title> 
05.
<script type="text/javascript"
06.
<!-- 
07.
//Array verarbeiten 
08.
function test1(para){ 
09.
 for(var index = 0;index < para.length;index++){ 
10.
  document.write(para[index] + "<br>"); 
11.
12.
 return true; 
13.
14.
//Objekt verarbeiten 
15.
function test2(para){ 
16.
 //Die Keys im Array 
17.
 var keys = new Array("cat", "field", "attr1"); 
18.
 var index = 0; 
19.
  //Mit keys[index] wird der jeweilige Key angesprochen 
20.
  for(keys[index] in para){ 
21.
    //Mit para[keys[index]] somit ein Objektinhalt 
22.
    document.write("Key = " + keys[index] + " - Wert = " + para[keys[index]] + "<br>"); 
23.
    index++; 
24.
25.
	return true; 
26.
27.
// --> 
28.
</script> 
29.
</head> 
30.
<body> 
31.
<?php 
32.
$array1 = array("wert1","wert2","wert3"); 
33.
$array2 = array("cat" => "wert1", "field" => "wert2", "attr1" => "wert3"); 
34.
?> 
35.
<script type="text/javascript"
36.
<!-- 
37.
test1(<?php echo json_encode($array1);?>); 
38.
test2(<?php echo json_encode($array2);?>); 
39.
// --> 
40.
</script> 
41.
</body> 
42.
</html>
Vielleicht kannst du das ja gebrauchen.

Gruß
Günni
Bitte warten ..
Mitglied: nxclass
03.04.2013, aktualisiert um 23:13 Uhr
siehe meine Frage vom 23.02.2010:
http://www.administrator.de/forum/variable-namen-f%C3%BCr-eigenschaften ...

01.
$.each(attrArray, function(key, value) {  
02.
   attrObj[key] = value;  
03.
});
Bitte warten ..
Mitglied: Guenni
04.04.2013, aktualisiert um 19:29 Uhr
Zitat von nxclass:
siehe meine Frage vom 23.02.2010:
http://www.administrator.de/forum/variable-namen-f%C3%BCr-eigenschaften ...

01.
> $.each(attrArray, function(key, value) {  
02.
>    attrObj[key] = value;  
03.
> }); 
04.
>

Was soll mir das jetzt sagen? Dass du in JavaScript ein Objekt erzeugen kannst?

Wo soll denn hier das variable sein, wenn ich die Eigenschaften(keys) festlege?

Genauso könnt' ich sowas benutzen:

01.
<script type="text/javascript"> 
02.
<!-- 
03.
function myObject(cat, field, attr1){ 
04.
 this.cat = cat; 
05.
 this.field = field; 
06.
 this.attr1 = attr1; 
07.
08.
 
09.
var obj1 = new myObject("Kategorie","Feld","Attribut"); 
10.
// --> 
11.
</script> 
12.
. . . 
13.
<body> 
14.
<script type="text/javascript"> 
15.
<!-- 
16.
document.write(obj1.cat + "<br>"); 
17.
obj1.cat = "Neue Kategorie"; 
18.
document.write(obj1.cat); 
19.
// --> 
20.
</script> 
21.
. . .  
22.
</body>
Naja,ottscho wollte ja PHP-Daten als dynamisches Array übergeben. PHP seh' ich hier eh nicht, und wenn das Anliegen so gelöst ist . . .

Gruß
Günni
Bitte warten ..
Mitglied: nxclass
05.04.2013 um 09:08 Uhr
Was soll mir das jetzt sagen? Dass du in JavaScript ein Objekt erzeugen kannst?
... Moment - also ich hatte dem TO geantwortet auf seine Frage:
Frage ist dann nur, wie mache ich den Wert nach dem . Variable:

wollte ja PHP-Daten als dynamisches Array übergeben
Dein Beispiel ist auch valide - nur habe ich dazu nichts gesagt, da der TO soweit ich das verstanden habe nur JS variablen an ein PHP Script senden wollte.
Bitte warten ..
Mitglied: Guenni
05.04.2013 um 10:42 Uhr
Zitat von nxclass:
> Was soll mir das jetzt sagen? Dass du in JavaScript ein Objekt erzeugen kannst?
... Moment - also ich hatte dem TO geantwortet auf seine Frage:
> Frage ist dann nur, wie mache ich den Wert nach dem . Variable:

> wollte ja PHP-Daten als dynamisches Array übergeben
Dein Beispiel ist auch valide - nur habe ich dazu nichts gesagt, da der TO soweit ich das verstanden habe nur JS variablen an ein
PHP Script senden wollte.

Sorry nxClass,

hatte ich nicht gesehen, dass du dem TO geantwortet hast.

Gruss
Günni

PS.: Kleine Anrede würde abhelfen, um Missverständnisse zu vermeiden.

Der Diskussionsverlauf ist manchmal etwas missverständlich (mir zumindest).
Bitte warten ..
Ähnliche Inhalte
Windows Installation
HP Array Config Utility erkennt keinen Controller
gelöst Frage von Fruitking3000Windows Installation6 Kommentare

hallo, möchte einen hp pro liant dl320 mit windows server 2008 std x64 aufsetzen. (über hp smarttools 8.30). Allerdings ...

PHP
HTML PHP: List mit Array befüllen und ausgewählte Option an eine andere PHP-Datei übergeben
gelöst Frage von PhobozPHP2 Kommentare

Hallo, habe eine Frage und zwar habe ich dies (s. Titel) vorher wunderbar mit einer Combobox machen können (Selected ...

PHP
Array an Funktion übergeben erzeugt Fatal Error beim Aufruf
gelöst Frage von JochemPHP7 Kommentare

Moin zusammen, in einem PHP-Script habe ich ein zweidimensionales Array mit Daten, welche ich in einer Funktion auslesen und ...

Netzwerkmanagement
Running-Config oder Startup-Config bei Cisco-Geräten sichern?
gelöst Frage von M.MarzNetzwerkmanagement9 Kommentare

Hallo zusammen, ich möchte gerne die Konfigs meiner Cisco-Switche sichern. In google finde ich immer wieder die Anleitung das ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 20 MinutenViren und Trojaner

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 4 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell8 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...