2015-01-24 5 views
1

в этом упражнении, мне нужно отредактировать количество книг в форме, а затем передать его из javascript-ajax в php-sql.Array ассоциативный от JavaScript-Ajax до php

Но, во-первых, моя форма выглядит так (сгенерирована php), и, как вы можете видеть, книги id в «name».

<input type="text" class="bookclass" name="books[1]" /> 
<input type="text" class="bookclass" name="books[2]" />  
<input type="text" class="bookclass" name="books[3]" />  

Хорошо, теперь мне нужно получить все значения (количества).

var arr = new Array(); 
var elems = document.querySelectorAll('.bookclass'); // class 

    for (var i=0; i<elems.length; i++) { 
     arr.push(elems[i].value) 

    }  

Но, конечно, когда я использую метод «push», не является ассоциативным.

Ajax отправить:

xmlhttp.open("GET", "edit.php?q=" + arrayassoc, true); 

Итак, как я могу сделать?

+0

JavaScript не поддерживает ассоциативные массивы. http://www.w3schools.com/js/js_arrays.asp –

ответ

2

Используйте имя и значения входов вместо того, чтобы создавать новое имя ключа, а затем пытаться нарисовать массив на нем.

var query_string = "?"; 

for (var i=0; i<elems.length; i++) { 
    query_string += encodeURIComponent(elems[i].name) + "=" + 
        encodeURIComponent(elems[i].value) + "&"; 
}  

xmlhttp.open("GET", "edit.php" + query_string, true); 
-1

JavaScript не поддерживает ассоциативные массивы.

Вы можете использовать нижеследующий код.

var arr = []; 
    var elems = document.querySelectorAll('.bookclass'); // class 

    for (var i=0; i<elems.length; i++) { 

     arr[i] = elems[i].value; 

    } 
+0

Этот код будет вызывать опорную ошибку, так как 'значение' не объявлено. – Quentin

+0

теперь работает –

Смежные вопросы