1

I have a table of data rows. Now I want to click on the Update button then that row of data will be Updated based on the ID

Here is my demo:

enter image description here

These are my commands:

<?php
              foreach ($get_data as $infocontact) {
                    echo '<form class="form-info-wmtp" action="" method="post" enctype="multipart/form-data">';
                    echo '<input type="hidden" name="id_image" id="id_image" value="'.$infocontact->id.'" />';
                    echo '<div class="txt-info-wmtp">'.$infocontact->button_name.'<p><input type="text" value="'.$infocontact->link_button.'" name="link_button" placeholder="Enter the link button">';
                    echo '<input type="submit" id="btnSubmitSocial" name="btnSubmitSocial" value="Update">';
                    echo '<input type="submit" id="delete-btn" name="btnDelete" value="Delete"></p></div>';
                }
                echo '</form>';

                if(isset($_POST['btnSubmitSocial'])){
                    $link = $_POST['link_button'];
                    $id_img = $_POST['id_image'];
                    var_dump($id_img);

                    $table = $wpdb->prefix . 'call_button';
                    $post_data=array(
                        'link_button' => $link,
                        'id' => $id_img
                    );

                    $wpdb->update( $table, $post_data, array( 'id' => $id_img ), $format = null, $where_format = null );
                }

            ?>

I'm stuck here for hours, please help me! Thanks!

  • Move echo '</form>'; inside the foreach, so that each row is its own form. At the moment all the fields are going into one form, which is preventing your code from working because there will be multiple IDs. As long as you've got the table name/structure correct, I don't see any other issue. – Jacob Peattie Jan 28 at 15:44
  • Wow, It worked. Thank you so much, I've been sitting with that problem for hours without finding a fault, you helped me fix it quickly. – Tung Nguyen Jan 28 at 16:01
0

pull form closing tag inside foreach loop

<?php
foreach ($get_data as $infocontact) {
        echo '<form class="form-info-wmtp" action="" method="post" enctype="multipart/form-data">';
        echo '<input type="hidden" name="id_image" id="id_image" value="'.$infocontact->id.'" />';
        echo '<div class="txt-info-wmtp">'.$infocontact->button_name.'<p><input type="text" value="'.$infocontact->link_button.'" name="link_button" placeholder="Enter the link button">';
        echo '<input type="submit" id="btnSubmitSocial" name="btnSubmitSocial" value="Update">';
        echo '<input type="submit" id="delete-btn" name="btnDelete" value="Delete"></p></div>';
        //i pull /form inside loop here
        echo '</form>';
}

if(isset($_POST['btnSubmitSocial'])){
   $link = $_POST['link_button'];
   $id_img = $_POST['id_image'];
   var_dump($id_img);

   $table = $wpdb->prefix . 'call_button';
   $post_data=array(
   'link_button' => $link,
   'id' => $id_img
   );

   $wpdb->update( $table, $post_data, array( 'id' => $id_img ), $format = null, $where_format = null );
}
?>
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.