У меня вопрос в JQuery. Я использую $.ajax()
в своем коде (Function 1)
, чтобы отправить имя поля и порядковый номер к ctrller, который получает свои данные по $_POST['name']
и $_POST['sequenceno']
и обновляет имя поля в таблице с заданной последовательностью. И генерирует панель отображения предварительного просмотра со вставленными полями.
Теперь я пытаюсь изменить имя поля снова. Теперь, когда я нажимаю на сгенерированные поля панели дисплея, откроются соответствующие настройки, и я попытаюсь изменить имя поля сейчас (Function 2)
И Function1
, и Function2
одинаковы. В Function1
отправляю имя поля и последовательность №
В Funciton 2 я хочу отправить то же имя поля и (но другое значение) sequenceno ..
Но в Function1 (sequenceno - значение счетчика)
Принимая во внимание, что в Function2 (sequenceno - идентификатор div, по которому щелкнули (панель отображения))
Как я могу использовать один и тот же функционал для обоих .. Или мне может понадобиться использовать отдельные функции ..
Даже я пытался с 2-мя отдельными функциями с разными URL, но не обновляется правильно
Мой код
//This is what i insert the field initially
$(".TextFieldSettings #fieldTitle").change(function (){
fieldname=$(".TextFieldSettings #fieldTitle").val();
$.ajax({
type: "POST",
url: "./server",
data: "name="+fieldname+"&sequenceno="+counter,
success: function(msg){
}//success
});//ajax
});//change
//After inserting to get the updated values in JSON format
var htm = $.ajax({
type: "GET",
url: "./viewforms",
async: false
}).responseText;
var myObject = eval('(' + htm + ')');
gettype=myObject.attributes[0]["type"];
getlabel=myObject.attributes[0]["labels"];
//showing in my DisplayPanel view
$("#labelstr"+counter+"").html(getlabel);
});//change
Сейчас
Когда я щелкаю представление DisplayPanel
$("#displayPanel div").live("click", function(){
div_id=$(this).attr("id");
var htm = $.ajax({
type: "GET",
url: "./getattributes/"+div_id+"",
async: false
}).responseText;
var myObject = eval('(' + htm + ')');
gettype=myObject.attributes[0]["type"];
getlabel=myObject.attributes[0]["labels"];
getsize=myObject.attributes[0]["size"];
if(gettype=='Text')
{
$(".TextFieldSettings").show(function(){
$(".TextFieldSettings #fieldTitle").val(getlabel);//showing the updated value
if(getsize=='100')
{
$("#fieldSize option:contains(Small)").attr("selected",true);
}
else if(getsize=='200')
{
$("#fieldSize option:contains(Medium)").attr("selected",true);
}
else
{
$("#fieldSize option:contains(Large)").attr("selected",true);
}
//Again i m changing the fieldname
$(".TextFieldSettings #fieldTitle").change(function (){
fieldname=$(".TextFieldSettings #fieldTitle").val();
alert(div_id);
$.ajax({
type: "POST",
url: "./editsettings",
data: "name="+fieldname+"&sequenceno="+div_id,
success: function(msg){
}//success
});//ajax
});//change in text value later*/
});//show
}//if type = TEXT
});//displaypanel Div clicked
Но теперь, если я снова пытаюсь изменить имя поля, я пишу другую функцию POST editsettings
, но выполнение происходит внутри Func1
(изменяется изначально) вместо Func2
(снова меняется в имени поля) ...
Пожалуйста, кто-нибудь получить ответ за это ....
Замечания:
$(".TextFieldSettings #fieldTitle").change()
используется дважды внутри моего prg .. Может быть из-за этого обновление идет не так