Выдача переименования каталогов - PullRequest
0 голосов
/ 24 августа 2011

Я хочу переименовать каталоги тех, чей флажок был отмечен пользователем, одним нажатием кнопки Update. Значения текстового поля и флажка собираются в массив и отправляются на сервер через jQuery. Firebug показывает правильные значения переданного массива. Проблема состоит в том, что он переименовывает первый проверенный каталог в Array, а не в новое значение, введенное в текстовое поле, в то время как другие значения остаются неизменными.

Что я делаю не так в этом коде?:

HTML:

<input type="text" name="album_text[]" id="album_text" class="album_text"  />
<input type="text" name="album_text[]" id="album_text" class="album_text"   />
<input type="text" name="album_text[]" id="album_text" class="album_text"  />

<input name="album_checkbox[]" type="checkbox" id="album_checkbox" value="' . $res. '">
<input name="album_checkbox[]" type="checkbox" id="album_checkbox" value="' . $res. '">

JQUERY:

  $("#album_update").click(function() {
                var album_name = new Array();


                $("input[@name='album_checkbox[]']:checked").each(function() {
                    album_name.push($(this).val());
                });

                var album_text= new Array();

                $("input[name='album_text[]']").each(function(){

                    if( $(this).val() ) {
                            album_text.push($(this).val());
                    }

                });  



             var postData = { 
                        "album_name" : album_name,
                        "album_text" : album_text,
                        "album_update" : $("#album_update").val()
                };   


                      //make the call
                      $.ajax({
                        type: "POST",
                        url: "updalbums.php",
                        data: postData, 
                        dataType: "json",
                        success: function(data){
                            alert("updated");
                        }
                      });
        });

PHP:

public function updateAlbum() {

                if (isset($_POST['album_text']) && isset($_POST['album_name'])) {

                    $path = $_SERVER['DOCUMENT_ROOT'] . '/images/';

                    foreach ($_POST['album_name'] as $albums_name ) {
                        $album_text = $_POST['album_text'];
                        rename($path.$albums_name, $path.$album_text); 
                    }
                }
        }

1 Ответ

0 голосов
/ 24 августа 2011

$ album_text - это массив, потому что вы рисуете прямо из $ _POST global $ _POST ['album_text'], который является массивом.Вам необходимо определить правильный индекс.

Вы можете получить доступ к индексу, как показано ниже, но кажется, что он может быть взломан.

                    foreach ($_POST['album_name'] as $idx => $albums_name ) {
                    $album_text = $_POST['album_text'][$idx];
                    rename($path.$albums_name, $path.$album_text); 
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...