Antworten auf deine Fragen:
Neues Thema erstellen

[jQuery] Komplexes Problem mit $.Ajax

Crackp0t

Aktives Mitglied

[jQuery] Problem beim Senden von Daten mit $.Ajax

Hi, ich steh mal wieder total aufm Schlauch, vieleicht könnt ihr mir weiterhelfen :hmpf:

Ich habe eine Form die wie folgt aussieht:

HTML:
<span id="setIp" class="values">
<p class="attributes">IP-Address:</p>
<span class="edit">
<span class="fields">
<input class="valIP" name="ip_1" type="text" value="" maxlength="3" size="2" disabled="true" />.
<input class="valIP" name="ip_2" type="text" value="" maxlength="3" size="2" disabled="true" />.
<input class="valIP" name="ip_3" type="text" value="" maxlength="3" size="2" disabled="true" />.
<input class="valIP" name="ip_4" type="text" value="" maxlength="3" size="2" disabled="true" />
</span>
<input class="enableForm" type="button" value="edit" />
<input class="send" type="submit" value="save" />
<input class="reset" type="reset" value="reset" />
<p class="invalInput"></p>
</span>
</span>
Die Daten in den Input-Feldern sollen beim Klick auf "save" per Ajax an eine CGI-Datei geschickt werden. Da ich mehrere Forms dieser Art auf einer Seite benutze, habe ich mir einen entsprechenden Selektor in jQuery (jQ ist mit jQuery.noConflict() aufgrund von MooTools als neuer Namespace gewählt) gebastelt, um genau auf diese Forms zu kommen:

PHP:
var elm= "#" + jQ(this).parents().map(function () { 
return this.id; 
}).get(1);
Dabei dient das <span> Element mit der Klasse "values" und der jeweiligen ID als Referenzpunkt um anschließend mit

PHP:
jQ(elm).find(".valIP")
Die Felder oder Buttons zu selektieren.

Leider weiß ich leider nicht wie ich diese Daten korrekt an das Script per $.Ajax bzw jQ.Ajax übergebe. Mein Ansatz ist total umständlich und liefert eine seltsam-falsche URL:

PHP:
var sdata = new Array();
sdata[0] = new Object();
sdata[0] [jQ(elm).find(".valIP").map(function(){
return jQ(this).attr("name");
}).get(0)] = jQ(elm).find(".valIP").map(function(){
return jQ(this).val();
}).get(0);

sdata[1] = new Object();
sdata[1] [jQ(elm).find(".valIP").map(function(){
return jQ(this).attr("name");
}).get(1)] = jQ(elm).find(".valIP").map(function(){
return jQ(this).val();
}).get(1);

sdata[2] = new Object();
sdata[2] [jQ(elm).find(".valIP").map(function(){
return jQ(this).attr("name");
}).get(2)] = jQ(elm).find(".valIP").map(function(){
return jQ(this).val();
}).get(2);

sdata[3] = new Object();
sdata[3] [jQ(elm).find(".valIP").map(function(){
return jQ(this).attr("name");
}).get(3)] = jQ(elm).find(".valIP").map(function(){
 return jQ(this).val();
}).get(3);

jQ.ajax({
url: "cgi-bin/set_ip_test.sh",
type: "get",
dataType: "html",
data: sdata,
cache: false,
error: function(){
jQ(elm).find(".invalInput").text("Failed to send data");
},
success: function(strData){
jQ(this).css("display", "none");
jQ(elm).find(".reset").css("display", "none");
jQ(elm).find(".enableForm").css("display", "inline");
jQ(elm).find(".valIP").attr("disabled", "true");
jQ(elm).find(".invalInput").text(strData);
}
});
URL, die ich mit Tamper-Data abgefangen habe:

Code:
http://192.168.0.140/includes/cgi-bin/set_ip_test.sh?_=1273237148309&undefined=undefined&undefined=undefined&undefined=undefined&undefined=undefined
Ich weiß nicht wo auf einmal "?_=1273237148309" herkommt und warum die Elemente undefined sind. Vieleicht wisst ihr es ja?

Bin für jeden Lösungsansatz dankbar :)
 
Zuletzt bearbeitet:

M3g4Star

Nicht mehr ganz neu hier

AW: [jQuery] Komplexes Problem mit $.Ajax

Ich denke dort liegt der Hund begraben

HTML input disabled Attribute

Versuchs mit HTML input readonly Attribute

btw:
PHP:
var sdata = new Array();
sdata[0] = new Object();
sdata[0] [jQ(elm).find(".valIP").map(function(){
return jQ(this).attr("name");
}).get(0)] = jQ(elm).find(".valIP").map(function(){
return jQ(this).val();
}).get(0);

sdata[1] = new Object();
sdata[1] [jQ(elm).find(".valIP").map(function(){
return jQ(this).attr("name");
}).get(1)] = jQ(elm).find(".valIP").map(function(){
return jQ(this).val();
}).get(1);

sdata[2] = new Object();
sdata[2] [jQ(elm).find(".valIP").map(function(){
return jQ(this).attr("name");
}).get(2)] = jQ(elm).find(".valIP").map(function(){
return jQ(this).val();
}).get(2);

sdata[3] = new Object();
sdata[3] [jQ(elm).find(".valIP").map(function(){
return jQ(this).attr("name");
}).get(3)] = jQ(elm).find(".valIP").map(function(){
 return jQ(this).val();
}).get(3);
entspricht doch auch dem hier oder? Also völlig sinnfrei mal dahin geschrieben da ich mit MooTools an sich nicht arbeite.

PHP:
var sdata = new Array();

for (var i = 0; i <= 3; i++) {
var input_name=jQ(elm).find(".valIP").map(function(){
    return jQ(this).attr("name");
}).get(i);

var input_value=jQ(elm).find(".valIP").map(function(){
    return jQ(this).val();
}).get(i);  

sdata[i] = new Object();
sdata[i] [input_name] =input_value; 
}
Gruß M3g4
 
Zuletzt bearbeitet:

Crackp0t

Aktives Mitglied

AW: [jQuery] Komplexes Problem mit $.Ajax

Ich arbeite mit jQuery, lies doch nochmal genau meinen Post ;)
An dem Feldattribut "disabled" liegt es nicht, da dieses nur die Modifikation durch Benutzer verhindern soll. Bewiesen ist es dadurch, dass ich z. B. mit alert(sdata[0].ip_1); den Wert ausgeben kann.
Deine Version dürfte äquivalent zu Meiner sein, nur bleibt das Problem weiter bestehen.
Aber danke für diese etwas kompaktere Fassung :)
 

saila

Moderatorle

AW: [jQuery] Komplexes Problem mit $.Ajax

Hi,

du möchtest die Values aus den input-tags des form?

Code:
$(function() { 
 $('#submit').click( function() {
  var datas = $('#form-id').******ize();

 // jetzt hier dein ajax und bei dem ajax-element: data 
 // gibst du folgendes mit: data: datas
  $.ajax({
   type: 'GET',
   url: '/filename.cgi',
   data: datas,
   success: function(data) {
      alert(data); // per print aus der cgi als antwort
   },
   error: function(msg) {
     alert('war wohl nichts '+ msg);
   }
 });
 });
});
 
Zuletzt bearbeitet:

Crackp0t

Aktives Mitglied

AW: [jQuery] Komplexes Problem mit $.Ajax

Leider ist der essentielle Teil des Codes zensiert worden :D
Kannst du bitte die Buchstaben mit Punkten trennen?
 

cebito

undefined

AW: [jQuery] Komplexes Problem mit $.Ajax

Schon cool. Allerdings ist mir unklar, warum s e r i a lize (isolation) zensiert wird :). C r a c k macht ja noch Sinn.

Ist doch klar, geht um "s e r i a l", das im Wort enthalten ist. So Sachen werden halt geblockt/editiert, in diesem Fall zwar dumm gelaufen, aber 99% der Beiträge mit diesem Wort verheißen nix gutes.
 

Crackp0t

Aktives Mitglied

AW: [jQuery] Komplexes Problem mit $.Ajax

Mir ist noch kein Beitrag solcher Art in diesem Forum untergekommen in den letzten 12 Monaten... "cr ack" kann ich ja noch verstehen, aber manch andere Zensur hier ist irgentwie sinnlos. Und ob nun Zensur oder nicht, der Beitrag wird eh gelöscht wenn die intention des Erstellers auf eine illegale Handlung hinweist. Naja, sorry wegen OT.

//edit: Eine kurze Frage noch: Gibt es eine Quelle die auflistet welche Unterschiede es zwischen den jQuery Versionen 1.3.2 und 1.4.2 gibt? Die Changelogs sind bei dieser Spanne irgentwie unübersichtlich.
 
Zuletzt bearbeitet:

saila

Moderatorle

AW: [jQuery] Komplexes Problem mit $.Ajax

Hi,

im Grunde und zusammengefasst, wurden zwischen den Versionen Verbesserungen vorgenommen (was allerdings die Warnhinweise und z.T. noch grafierende Fehler nicht behoben hat). Daneben wurde die 1.4 Version deutlich schneller. DOM-Zugriff usw..

Weiter habe ich die Unterschiede nicht gelesen, weil sie wie schon genannt zu unübersichtlich geschrieben waren. Im groben kannst du aber über History – jQuery Project noch nachlesen, was die einzelnen Release mit sich brachten.
 

cebito

undefined

AW: [jQuery] Komplexes Problem mit $.Ajax

der Beitrag wird eh gelöscht wenn die intention des Erstellers auf eine illegale Handlung hinweist

Sofern ein Mod oder Admin Kenntnis davon erlangt. Wir können nun mal nicht allezeit überall sein, und das ist auch nicht der Sinn der Sache.

//edit: Eine kurze Frage noch: Gibt es eine Quelle die auflistet welche Unterschiede es zwischen den jQuery Versionen 1.3.2 und 1.4.2 gibt? Die Changelogs sind bei dieser Spanne irgentwie unübersichtlich.

Version 1.4 – jQuery API - eine Auflistung der neuen und geänderten Funktionen in jQuery 1.4
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.640
Beiträge
1.538.507
Mitglieder
67.558
Neuestes Mitglied
azmostbethaot
Oben