JQuery immer nur erste Auswahl

Rocky

Mitglied
Hallo,
ich gebe eine mysql datenbank in tabellenform aus:

PHP:
while($row = mysql_fetch_array($ergebnis_suche)) {
         echo "<tr>\n";  
         echo "<td>". utf8_encode($row['card_name_de']) . "</td>"; //Deutsch
         echo "<td>". utf8_encode($row['card_name_en']) . "</td>"; //Englisch
         //echo "<td>". $row['gba_code'] . "</td>"; //GBA
         echo "<td>
         <input type=\"hidden\" name=\"sessionid\" id=\"sessionid\" value=\"".$sessionid."\" />
         <input type=\"hidden\" name=\"card_name\" id=\"card_name\" value=\"".utf8_encode($row['card_name_en'])."\" />
         <select name=\"anzahl\" id=\"anzahl\">
         <option value=\"1\">1x</option>
         <option value=\"2\">2x</option>
         <option value=\"3\">3x</option>
         </select>
         <select name=\"deck\" id=\"deck\">
         <option value=\"Main Deck\">Main Deck</option>
         <option value=\"Side Deck\">Side Deck</option>
         <option value=\"Extra Deck\">Extra Deck</option>
         </select>
         <input type=\"hidden\" name=\"gba\" id=\"gba\" value=\"".$row['gba_code']."\" />
         <input type=\"hidden\" name=\"type\" id=\"type\" value=\"".$row['categorie_name_en']."\" />
         <button onclick=\"add()\" id=\"addButton\" class=\"btn_an btn_an_blue btn_an_small\"><i class=\"icon icon-white icon-plus\"></i> Add Card</button></td>";
         echo "</tr>\n";
    }

Nun will ich das angezeigte an eine weitere php übergeben, was auch super klappt, jedoch egal welchen der buttons ich klicke es wird immer der erste ientrag der tabelle hinzugrfügt...

Das JQuery dazu sieht folgendermassen aus:

Code:
$ = jQuery;
var session = document.getElementById("sessionid").value;
var gba = document.getElementById("gba").value;
var name = document.getElementById("card_name").value;
var anzahl = document.getElementById("anzahl").value;
var deck = document.getElementById("deck").value;
var type = document.getElementById("type").value;
function add() {
//alert(session + '\n' + gba + '\n' + name + '\n' + anzahl + '\n' + deck + '\n' + type);
$.ajax({
    type: "POST",
    cache: 'false',
    url: "functions/addcard.php",
    data:      "sessionid=" + session +"&gba=" + gba + "&card_name=" + name + "&anzahl=" + anzahl + "&deck=" + deck + "&type=" + type,
    success: function(html){
        alert(html);
    }
});
};

hoffe ihr könnt mir helfen
 
So ganz verstehen tu ich deinen Code zwar nicht aber normalerweise darf eine ID immer nur einmal vorkommen.

Bei dir bekommen die jeweiligen Felder immer die gleiche ID und das könnte eventuell das Problem sein!?
 
So könnte es funktionieren

PHP:
$i = 0;
while($row = mysql_fetch_array($ergebnis_suche)) {
         echo "<tr>\n";  
         echo "<td>". utf8_encode($row['card_name_de']) . "</td>"; //Deutsch
         echo "<td>". utf8_encode($row['card_name_en']) . "</td>"; //Englisch
         //echo "<td>". $row['gba_code'] . "</td>"; //GBA
         echo "<td>
         <input type=\"hidden\" name=\"sessionid\" id=\"sessionid_".$i++."\" value=\"".$sessionid."\" />
         <input type=\"hidden\" name=\"card_name\" id=\"card_name_".$i."\" value=\"".utf8_encode($row['card_name_en'])."\" />
         <select name=\"anzahl\" id=\"anzahl\">
         <option value=\"1\">1x</option>
         <option value=\"2\">2x</option>
         <option value=\"3\">3x</option>
         </select>
         <select name=\"deck\" id=\"deck_".$i."\">
         <option value=\"Main Deck\">Main Deck</option>
         <option value=\"Side Deck\">Side Deck</option>
         <option value=\"Extra Deck\">Extra Deck</option>
         </select>
         <input type=\"hidden\" name=\"gba\" id=\"gba_".$i."\" value=\"".$row['gba_code']."\" />
         <input type=\"hidden\" name=\"type\" id=\"type_".$i."\" value=\"".$row['categorie_name_en']."\" />
         <button onclick=\"add(".$i.")\" id=\"addButton_".$i."\" class=\"btn_an btn_an_blue btn_an_small\"><i class=\"icon icon-white icon-plus\"></i> Add Card</button></td>";
         echo "</tr>\n";
    }

Code:
function add(i) {
$ = jQuery;
var session = document.getElementById("sessionid_"+i).value;
var gba = document.getElementById("gba_"+i).value;
var name = document.getElementById("card_name_"+i).value;
var anzahl = document.getElementById("anzahl_"+i).value;
var deck = document.getElementById("deck_"+i).value;
var type = document.getElementById("type_"+i).value;

//alert(session + '\n' + gba + '\n' + name + '\n' + anzahl + '\n' + deck + '\n' + type);
$.ajax({
    type: "POST",
    cache: 'false',
    url: "functions/addcard.php",
    data:      "sessionid=" + session +"&gba=" + gba + "&card_name=" + name + "&anzahl=" + anzahl + "&deck=" + deck + "&type=" + type,
    success: function(html){
        alert(html);
    }
});
};
 
Zuletzt bearbeitet:
Also ich habe jetzt allen "Feldern" bei der ID den Wert der $sessionid angehängt, z.B. card_name1, card_name2, ..., deck1, deck2, ... usw.

PHP:
$sessionid = 0;
while($row = mysql_fetch_array($ergebnis_suche)) {
         echo "<tr>\n";
         echo "<td>". utf8_encode($row['card_name_de']) . "</td>"; //Deutsch
         echo "<td>". utf8_encode($row['card_name_en']) . "</td>"; //Englisch
         //echo "<td>". $row['gba_code'] . "</td>"; //GBA
         echo "<td>
         <input type=\"hidden\" name=\"sessionid\" id=\"sessionid".$sessionid++ ."\" value=\"".$sessionid."\" />
         <input type=\"hidden\" name=\"card_name\" id=\"card_name".$sessionid."\" value=\"".utf8_encode($row['card_name_en'])."\" />
         <select name=\"anzahl\" id=\"anzahl".$sessionid."\">
         <option value=\"1\">1x</option>
         <option value=\"2\">2x</option>
         <option value=\"3\">3x</option>
         </select>
         <select name=\"deck\" id=\"deck".$sessionid."\">
         <option value=\"Main Deck\">Main Deck</option>
         <option value=\"Side Deck\">Side Deck</option>
         <option value=\"Extra Deck\">Extra Deck</option>
         </select>
         <input type=\"hidden\" name=\"gba\" id=\"gba".$sessionid."\" value=\"".$row['gba_code']."\" />
         <input type=\"hidden\" name=\"type\" id=\"type".$sessionid."\" value=\"".$row['categorie_name_en']."\" />
         <button onclick=\"add($sessionid)\" id=\"addButton".$sessionid."\" class=\"btn_an btn_an_blue btn_an_small\"><i class=\"icon icon-white icon-plus\"></i> Add Card</button></td>";
         echo "</tr>\n";
}

Dann habe ich noch die Funktion "add" als "wirkliche" Javascript Funktion eingesetzt, die ganzen JS Variablen dort deklariert und schon werden die richtigen Werte beim Alert ausgegeben.

Javascript:
function add(wert) {
var session = document.getElementById("sessionid" + wert).value;
var gba = document.getElementById("gba" + wert).value;
var name = document.getElementById("card_name" + wert).value;
var anzahl = document.getElementById("anzahl" + wert).value;
var deck = document.getElementById("deck" + wert).value;
var type = document.getElementById("type" + wert).value;

alert(session + '\n' + gba + '\n' + name + '\n' + anzahl + '\n' + deck + '\n' + type);

}

Ach so und die Buttons bekommen beim Aufruf der onclick-Funktion noch die sessionid als Parameter!
 

Neue Beiträge

Zurück