Вы можете иметь основные tsconfig.json
в корневом каталоге проекта и отдельные tsconfig.json
файлы в каталоге пакетов со следующим содержимым:
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "dist",
},
"include": ["src"]
}
Вы, возможно, должны изменить свой PHP, как @Tomalak предполагает, но необходимо будет также изменить JavaScript. Для ссылки на именованный элемент используют #name селектор:
var selectedbooks = $('form#book_form').serialize();;
Спасибо Tomalak.
В файле PHP я использую следующий код теперь:
while ($row = mysqli_fetch_assoc($result)) {
extract($row);
echo "<tr>";
echo "<td bgcolor='#FFFFFF'><input id='$book_id' name='bookArray[]' type='checkbox' value='$book_id' />$book_id</td>";
echo "<td bgcolor='#FFFFFF'>$book_name</td>";
echo "</tr>";
} // while
** book_id уникален.
Используя tvanfosson решение, теперь я могу получить массив входного значения
var selectedBooks = $ ('form#book_form') .serialize (); предупреждение (selectedBooks);
От аварийного окна сообщения я добираюсь ==> bookArray%5B%5D=T2.05&bookArray%5B%5D=T2.81
Теперь, когда я отправил сериализировать входное значение в файл PHP с помощью JQuery
var selectedBooks = $('form#book_form').serialize();
alert (selectedBooks);
var url = 'saveBookList.php';
// Send to server using JQuery
$.post(url, {bookArray: selectedBooks}, function(responseData) {
$("#save-result").text(responseData);
});
Внутри saveBookList.php для обработки сериализировать формы я получил эту ошибку "Недействительный аргумент, предоставленный для foreach ()".
Внутри saveBookList.php,
// If you have selected from list box.
if(isset($_POST['bookArray'])) {
// Get array or bookID selected by user
$selectedBookId = $_POST['bookArray'];
echo $selectedBookId;
foreach($selectedBookId as $selectListItem) {
echo "You sent this -->" . $selectListItem . "\n";
}
}
Код PHP выше хорошо работает, если я отправляю Прототип использования.
Для Прототипа, когда я действительно повторяю $selectedBookId;
Я получил Массив.
Для JQuery, когда я действительно повторяю $selectedBookId;
Я добрался ==> bookArray%5B%5D=T4.11&bookArray%5B%5D=T4.38
Мой вопрос, jQuery поддерживает значение массива для метода сообщения?
Проблема решена! Вот то, что я сделал.
В файле PHP для создания строк динамических флажков,
while ($row = mysqli_fetch_assoc($result))
{
extract($row);
echo "<tr>";
echo "<td bgcolor='#FFFFFF'><input name='books' type='checkbox' value='$book_id' />$book_id</td>";
echo "<td bgcolor='#FFFFFF'>$book_name</td>";
echo "</tr>";
} // while
Я не использую $ JQuery .post метод больше. Я изменил свой код на следующее
var my_query_str = '';
$("input[@type='checkbox'][@name='books']").each(
function()
{
if(this.checked)
{
my_query_str += "&bookArray[]=" + this.value;
}
});
$.ajax(
{
type: "POST",
url: "saveBookList.php",
data: "dummy_data=a" + my_query_str,
success:
function(responseData)
{
$("#save-result").empty().append(responseData);
},
error:
function()
{
$("#save-result").append("An error occured during processing");
}
});
Теперь, внутри saveBookList.php страница, значением $ _POST ['bookArray'] является Массив. Yey! Yey!
Я действительно надеюсь и желаю, чтобы $ .post метод JQuery мог поддерживать тип данных массива, как Прототип делает.:)
Функциональность Prototype / Scriptaculous сериализации для jQuery:
<script>
function toObjectMap( queryString )
{
return '{\'' + queryString.replace(/=/g, '\':\'').replace(/&/g, '\',\'') + '\'}';
}
</script>
...
<div id="result"></div>
...
<form onSubmit="$('#result').load( ajaxURL, toObjectMap( $('#formId').serialize() ) );" ...>
...
@Tomalak В XHTML можно использовать символы квадратных скобок «[» и «]». видеть http://www.w3.org/TR/xhtml1/dtds.html#dtdentry_xhtml1-transitional.dtd_input
Таким образом, это означает, что имя может содержать много разных символов в пределах XHTML, хотя это не делает имеет смысл использовать слеши или скобки. PHP поддерживает использование нотации массива в именах форм, поэтому вы можете упустить трюк, если не используете нотацию массива в некоторых случаях.
var data = $(form).serialize();
$.post('post.php', '&'+data);
var arTags = new Array();
jQuery.map( $("input[name='tags[]']") , function(obj,index)
{
arTags .push($(obj).val());
});
var obj = {'new_tags' : $("#interest").val() ,
'allready_tags[]' : arTags };
var post_data = jQuery.param(obj,true);
$.ajax({
type : 'POST',
url : 'some_url',
data : post_data,
dataType : "html",
success: function(htmlResponse)
{
}
});
jQuery 1.4
var myform = $("book_form").serialize();
decodeURIComponent(myform);