2012-05-21 2 views
1
var reguser = function(btn,url,form_data,op) { 
    $(btn).click(function(){ 
     postLoad(url,form_data,op); 
     return false; 
    }); 
} 

var postLoad = function(url,form_data,op,fade) { 
    $.post(base_url(url),form_data,function(q){$(op).html(q);}); 
} 

var getVal = function(link) { 
    return $(link).val(); 
}; 

var base_url = function(link) { 
    return 'http://localhost/cw/' + link; 
} 

У меня есть три функции var здесь. Мне показалось странным, что когда я хочу передать переменную массива, она не передается в моем AJAX.Передача массива в функцию var

Вот как я выполняю код (это было объявлено в $ (document) .ready();). Вышеприведенный код сохраняется в отдельном файле.

reguser('#add-acct','ctrl_register/AJAXreguser',{call:1,fname:getVal('#fname')},'#acct-detail'); 

Результат:

Array ([называем] => 1 [имя_файла] =>)

код формы

<form action="http://localhost/cw/ctrl_register" class="form-vertical" method="post" accept-charset="utf-8"> 
<label for="fname">First Name</label> 
    <input type="text" name="fname" value="" class="span8 input-small"id="fname" placeholder="First Name" /> 
    <label for="mname">Middle Name</label> 
<input type="text" name="mname" value="" class="span8 input-small"id="mname" placeholder="Middle Name" /> 
<label for="lname">Last Name</label> 
<input type="text" name="lname" value="" class="span8 input-small"id="lname" placeholder="Last Name" /> 
<label for="user">Username</label> 
<input type="text" name="user" value="" class="span8 input-small"id="user" placeholder="Username" /> 
<label for="pass">Password</label> 
<input type="password" name="pass" value="" class="span8 input-small"id="pass" placeholder="Password" /> 
<label for="pass2">Confirm Password</label> 
<input type="password" name="pass2" value="" class="span8 input-small"id="pass" placeholder="Confirm Password" /> 
</br><input type="submit" name="Add-acct" value="Add Account" class="btn btn-primary" id="add-acct" /> 
</form> 

enter image description here

+0

что вы получаете от 'GETVAL («# имя_файла»)'? – xdazz

+0

@xdazz ничего. См. Последнюю часть сообщения. –

+0

где массив, который вы передаете? – Gavriel

ответ

2

Эта код работает для меня: http://jsfiddle.net/flocsy/WC336/1/

Проблема заключалась в том, что в reguser вы хотите зарегистрировать OnClick для кнопки вы проходите, но в то же позвонить вам пройти fname.val(), который является пустым, потому что ты гавань ' т еще наполнил ее в

раствор для удаления OnClick из регистра и иметь его в document.ready:.

var reguser = function(btn,url,form_data,op) { 
    console.log(form_data); 
// $(btn).click(function(){ 
     postLoad(url,form_data,op); 
     return false; 
// }); 
}; 


$(document).ready(function(){ 
    $("#add-acct").on("click",function(){ 
     var fn=getVal('#fname'); 
     var dat = {'call':1,'fname':fn}; 
     reguser('#add-acct','ctrl_register/AJAXreguser',dat,'#acct-detail'); 
     return false; 
    }); 
}); 
​ 
+0

это комментарий, а не ответ .... – Christoph

+0

Добавлено из html для справки. Я тоже пробовал, но это не сработало. –

+0

class = "span8 input-small" id = "fname" добавить пробел перед идентификатором :) – Gavriel

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