Обновление одного значения из списка пользователей внутри цикла - PullRequest
0 голосов
/ 06 декабря 2018

Мне нужно обновить «display_name» в базе данных, для этого я отображаю всех пользователей, используя функцию wordpress и foreach, и добавляю рядом с каждым пользователем текстовое поле (для изменения имени) и кнопку (длявыполнить действие), мой вопрос, как я могу получить правильный идентификатор для ввода и кнопку, которую я нажимаю, если я зацикливаю пользователей?

<?php global $wpdb;
$results = $wpdb->get_results( "SELECT * FROM $wpdb->users" );
?>
<form>
<?php
foreach ($results as $key ) {
  echo "$key->ID . $key->display_name <input type='text' name=''> <button>Submit</button>
 }
?>
</form> 

Я в настоящее время пойман в ловушку в этом, я получаю идентификаторно значение первого текстового поля

<?php  
global $wpdb;
$results = $wpdb->get_results( "SELECT * FROM $wpdb->users" );
?><form id="form1"><?php
foreach ($results as $key ) {
  echo "$key->ID . $key->display_name . $key->mg_nobility <input type='text' 
id='edit_value' class='$key->ID' value=''> <button row_id='$key- 
>ID'class='edit_nov'>Submit</button>";
}
  ?>

</form>
<input type='hidden'  id='row_del_id' value=''>
<input type='hidden'  id='row_up_id' value=''>
<script>
jQuery('.edit_nov').click(function()
{
    var current_id = jQuery(this).attr('row_id');
    var current_value =jQuery('#edit_value').val();
    jQuery('#row_del_id').val(current_id);
    jQuery('#row_up_id').val(current_value);


return false;
});
</script>

1 Ответ

0 голосов
/ 06 декабря 2018

У вас должны быть уникальные значения идентификатора, или вы получите только первое, попробуйте это:

<?php  
global $wpdb;
$results = $wpdb->get_results( "SELECT * FROM $wpdb->users" )
?>

<form id="form1">
    <?php foreach($results as $key): ?>
        <?php echo $key->ID.$key->display_name.$key->mg_nobility ?>
        <!-- Append the id to the end of this -->
        <input type='text' id='edit-value-<?php echo $key->ID ?>' value='' /> 
        <!-- Use the data attr instead -->
        <button data-rowid='<?php echo $key->ID ?>' class='edit_nov'>Submit</button>
    <?php endforeach ?>
</form>
<!-- I don't understand the function of these since they are outside the form -->
<input type='hidden'  id='row_del_id' value=''>
<input type='hidden'  id='row_up_id' value=''>

<script>
jQuery(function($) {
    $(this).on('click', '.edit_nov', function() {
        // I would use the native method of .data()
        var current_id = $(this).data('rowid');
        // Append id and get value
        var current_value = $('#edit-value-'+current_id).val();

        $('#row_del_id').val(current_id);
        $('#row_up_id').val(current_value);
    });
});
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...