Попробую немного AJAX, и я обнаружил, что большая часть моих данных завалена подчеркиванием!Документация подтверждает, что это работает как задумано.Любой способ передать информацию о моей форме в PHP без изменений?Я использую CodeIgniter, поэтому мой проход выглядит как / controller / function / variable, принимающий контроллер:
controller{
function($v=0){#what once was hello world is now hello_world...}
}
Я не очень хорошо могу отменить, данные могут содержать подчеркивание.
Спасибо, Брэндон
Редактировать:
Я думаю, что это преобразование значения.Вот суть кода:
<form>
<text input name="tbox"/>
<submit/>
</form>
ajax_handler(
v = form.name() + form.val()
do_ajax('/controller/function/v')
)
controller(){
function($v=0){#spaces and periods in v are converted to underscore}
}
еще раз спасибо, brandon
вот фактический код:
<input type="text" id="tusername" name="tusername" class="checkable tbox"/>
<button id="unsubmit" name="wizard" class="formable">next</button>
$('.formable').live('click',function(event){
event.preventDefault();
var n = $(this).attr('id');
var a = $(this).attr('name');
var v = dosend();
$.ajax({
url: '/form/'+n+'/'+v,
type: 'post',
success: function(result){
alert(result);
}
});
function dosend(){
var inputs = $(":input");
var s = "";
inputs.each(function(){
s += $(this).attr('name')+":";
s += $(this).val()+";";
});
return s;
}
});
class Form extends Controller{
function Form(){
parent::Controller();
session_start();
}
function unsubmit($v=6){
print $v;
}
}
все в строке, которая передаетсяфункция контроллера, которая является пробелом или точкой, преобразуется в подчеркивание.Я вписываю hello world в это поле, и оно печатает hello_world.
$w = explode(';',$v);
foreach($w as $i){
$x = explode(':',$i);
if(isset($x[1])){
$_AJAX[$x[0]] = $x[1];
}
}