dynamische Formulardaten an php

BLR

Erfahrenes Mitglied
Hallo zusammen :)

ich verzeuge mich JavaScript 8 RadioButtons in einem Formular.
Es ist dynamisch, es könnten auch 4 oder 2.
Wenn jetzt auf einen anderen Radiobutton im Bereich "name" geklickt wird.
Sollen alle die Informationen von ALLEN Buttons an eine php-Seite geschickt werden.
Diese php Seite speichert sie in der Datenbank.

Ich bin ein Anfänger in JavaScript und weiss nicht so recht, wie ich per Post ein ganzes Array mit Radio-Buttons an eine Php-Seite verschicke.
Ich muss ja letztendlich auf die Radiobuttons schauen, die "checked" sind. Um entsprechend dann zu speichern.

Mein JavaScript:

Javascript:
var allRadioButtons = [];

function init() {

  loadJSON(function (response) {

  var actual_JSON = JSON.parse(response);

  var selectedPizzas = document.getElementById('selectedPizzas');
  //var formRadios = document.getElementById('baeckerform');
  for (i = 0; i < actual_JSON.length; i++) {

  var dateSpan = document.createElement("span");
  dateSpan.className = "orderedPizzas";
  dateSpan.innerHTML = actual_JSON[i].name;

  selectedPizzas.appendChild(dateSpan);
  var br = document.createElement("br");
  selectedPizzas.appendChild(br);

  }

  var formRadios = document.getElementById('baeckerform');

  for (i = 0; i < actual_JSON.length; i++) {


  for (y = 0; y < 3; y++) {

  var rb = document.createElement("input");
  rb.setAttribute("type", "radio");
  rb.setAttribute("name", i);
  rb.addEventListener('click', saveStatus);
  allRadioButtons.push(rb);
  if (y === 0) {
  rb.setAttribute("value", "bestellt");
  } else if (y === 1) {
  rb.setAttribute("value", "in der Werkstadt");
  } else if (y === 2) {
  rb.setAttribute("value", "fertig");

  }
  rb.setAttribute("id", (i + y));
  if (rb.value === actual_JSON[i].status) {
  rb.setAttribute("checked", "true");
  }
  formRadios.appendChild(rb);

  if (rb.getAttribute("value") === "fertig") {
  var br = document.createElement("br");
  formRadios.appendChild(br);
  }
  }


  }
  });
}

function loadJSON(callback) {

  //var url = "./json/aribeter.json";
  var url = "./order.php";
  var xobj = new XMLHttpRequest();
  xobj.overrideMimeType("application/json");
  xobj.open('GET', url, true);

  xobj.onreadystatechange = function () {

  if (xobj.readyState == 4 && xobj.status == "200") {
 
  callback(xobj.responseText);
  }
  };

  xobj.send(null);
}



function saveStatus() {
  console.log("ANGESPRUNGEN");
  $.ajax({


  url: "./Arbeiter.php",
  data: {action: save}, //optional
  success: function (result) {
  //do something after you receive the result
  }
  })
}

Jetzt muss "Arbeiter.php" irgendwie alle Radiobuttons übergeben bekommen oder von jedem RadioButton irgendeinen Wert, wo ich daraus schließen kann, ob man auf einen anderen RadioButton geklickt hat um einen passenden SQL-String abzusetzen.

Hier habe ich mir das in "HTML" überlegt, aber ich muss das dynamisch in JavaScript erzeugen :

HTML:
<form id="arbeiterform" class="rbMargin" method="POST" action="myPhp.php">
  
  <input id="rb1" type="radio" name="status" onclick="document.forms['arbeiterform'].submit();" value="bestellt" checked>  
  <input id="rb2" type="radio" name="status" onclick="document.forms['arbeiterform'].submit();" value="inWerkstadt">

  <input id="rb1" type="radio" name="status1" onclick="document.forms['arbeiterform'].submit();" value="bestellt" checked>  
  <input id="rb2" type="radio" name="status1" onclick="document.forms['arbeiterform'].submit();" value="inWerkstadt">
</form>

Im Seitenquelltext sehe ich nur:

HTML:
<form id="arbeiterform" class="rbMargin" method="POST" action="myPhp.php">

</form>

Ich möchte das eigentlich nicht mit Ajax machen. Einfach nur per Formular aller RadioButtons per Post an eine PHP-Seite abschicken. Die RadioButtons sind aber dynamisch erzeugt mit JavaScript.


Wie könnte ich das schaffen?
Danke für jeden Tipp.
 
Zuletzt bearbeitet:
Vielleicht hilft dir folgendes:
Die RadioButtons sind aber dynamisch erzeugt mit JavaScript.
Das ist der Grund dafür, dass Du sie in der Quelltextansicht nicht siehst. Um diese sichtbar zu machen, musst Du den DOM-Inspektor in den Entwicklertools deines Browsers benutzen. Sie werden auf jeden Fall einbezogen, wenn Du ein Formular abschickst.
Einfach nur per Formular aller RadioButtons per Post an eine PHP-Seite abschicken.
Bei Radiobuttons wird nur ein Wert beim Submit übertragen und zwar der des gecheckten unter dem Namen. Dieser ist ja bei allen Buttons gleich.
Ich bin mir nicht sicher, ob es sinnvoll ist, das Abschicken gleich beim Klick zu machen. Möglicher Weise hat der Benutzer sich vertan und möchte seine Wahl korrigieren.
 
Zurück