ボタンを1回クリックするだけで、ユーザーがチェックボックスをオンにしたディレクトリの名前を変更したい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. '">
Jクエリ:
$("#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);
}
}
}