brauche etwas Hilfe bei den Checkboxen (Auswahl / Abwahl von hervorgehobenen Beiträgen)

Ich arbeite an einem Projekt, das eine functionalität von “featured_posts” basierend auf dieser Diskussion hat . Ich habe eine Tabelle erstellt, die alle Beiträge auflistet. Ich habe eine Checkbox in jeder Zeile, die beim Klicken das for-javascript einreicht. Wenn das Kästchen angeklickt ist, wird alles aktualisiert und der Beitrag wird markiert. Als Test habe ich alle vorgestellten Beiträge deaktiviert. Nachdem ich die letzte Checkbox deaktiviert hatte, bekam ich

Warnung: Ungültiges Argument angegeben

Warnung. Mein Code ist

foreach( $_POST['list_id'] as $listID ) { if( update_post_meta( $listID, '_property_featured', 'true' ) ) { $featureMessage = "Selected listings have been marked as featured successfully."; } else $featureError = "An error occurred. Please try again."; } 

list_id bezieht sich auf post_id und war im Attribut value des Kontrollkästchens. Ich weiß, als das letzte Kontrollkästchen deaktiviert war, musste ich mich dieser Warnung stellen. Frage: Wie kann ich das Deaktivieren des Kontrollkästchens verfolgen, da es nicht in den POST-Daten des Formulars enthalten ist?

Solutions Collecting From Web of "brauche etwas Hilfe bei den Checkboxen (Auswahl / Abwahl von hervorgehobenen Beiträgen)"

Dies scheint eine allgemeine PHP-Warnung zu sein. Sie liefern ein falsches Argument in einer foreach Schleife.

$_POST['list_id'] wird voraussichtlich ein Array oder ein anderes (iteratives Objekt) sein. Wenn keine Checkboxen $_POST['list_id'] sind, nehme ich an, dass $_POST['list_id'] völlig undefiniert ist.

 $_POST['list_id'] = isset( $_POST['list_id'] ) ? (array) $_POST['list_id'] : array(); 

Wenn Sie dies hinzufügen, bevor Sie über alles iterieren, sollten Sie die Warnung ganz loswerden.

$_POST niemals etwas von $_POST . Es ist Benutzereingabe und könnte alles enthalten. Überprüfen Sie zuerst, ob $_POST['list_id'] existiert, indem Sie isset() oder empty() . Stellen Sie dann sicher, dass es sich um ein Array handelt. Sie können es einfach in ein Array umwandeln, wenn Sie möchten. Stellen Sie abschließend sicher, dass die Array-Werte tatsächlich absolute Ganzzahlen sind.

 $ids = (isset($_POST['list_id'])) ? array_map('absint', (array) $_POST['list_id']) : array(); 

Alle Post-IDs, die nicht in der übermittelten Liste gefunden wurden, sollten nicht funktionsfähig sein.