Иметь форму, которая не читается функцией serialize().
<script type="text/javascript">
function submitTrans1(){
var formData = $('form1').serialize();
var options = {
method:'post',
postBody:'formData',
onCreate: function(){alert(formData)},
onSuccess: function(transport){alert("onSuccess alert \n" + transport.responseText);},
onComplete: function(){alert('complete');},
onFailure: function(){alert('Something went wrong...')}
}
new Ajax.Request('/clients/addTrans/<?=$clientID123?>/',options);
}
</script>
<?php
$datestring = "%Y-%m-%d";
$time = time();
$clid1 = $this->uri->segment(3);
?>
<form name="form1" id="form1">
<div id="addTransDiv" style="display:none">
<div class="">
<label for="transDesc" id="transDesc" value="sadf" class="preField">Description</label>
<textarea cols="40" rows="3" id="transDesc" value="" name="transDesc" class=""></textarea>
</div>
<div class="">
<label for="date" class="preField">Date</label>
<input type="date" id="transDate" name="date" value="<?=mdate($datestring, $time);?>" size="40" class=""/><br/>
</div>
<div class="">
<label for="userfile" class="preField">File</label>
<input type="file" name="transFile" id="userfile" size="20" /><br>
</div>
<input type="button" id="submitTrans" name="submitTrans" value="Submit" onclick="submitTrans1()">
</div>
</form>
Э-э, у меня есть предупреждение в параметре onSuccess Ajax.Request, которое в идеале предупредит переменную, назначенную сериализованной форме. Однако, когда он предупреждает, он ничего не предупреждает. У меня также есть URL-адрес обработки, распечатывающий данные $_POST на всякий случай, но он также возвращает пустой массив в responseText, поэтому действительно ничего не отправляется в форму.
Спасибо.
Редактировать1
кажется, проблема может быть связана с тем, что форма находится внутри div. Если я удаляю на странице все, кроме формы и js, все работает нормально. Но форма находится в div, который по умолчанию скрыт и использует другую функцию для отображения. Нужна ли какая-то магия для получения данных формы через сериализацию, если они находятся в div?
Редактировать 2
Пробовал добавлять кавычки, знаки фунта и все такое прочее. Я использую панель инструментов веб-разработчика, firebug и т. д. Он не выдает никаких ошибок js и ничего не боится.