TextArea metin Al!

3 Cevap php

Yeniden Merhaba ve çaba için teşekkürler! Benim önceki soru başarılı değildi çünkü ben temel fikir mysql benim takvim etkinliği güncellemek için o başka approach.So vermek düşündüm:

$ EventQuery = mysql_query ($ conn "id = '$ bayram' tblCalEvent DAN id, vücut SEÇ");

Bir PHP dosyası üzerinde ayrı ayrı oturur ve ID ve Vücut dönerek çalışıyor ki. Şimdi, (bütün javascript fonksiyonları ile ana sayfada oturur) bu formun textarea görüntülenecek vücut gerek:

 <div style="display: none; margin-top: 10px;" id="editEvent">  	
		<br>
                    <textarea id="evtBody" cols="20" rows="5" wrap="hard"></textarea>
		<br>
		<input type="button" value="save changes" onClick="updateEvent(($F('eid'),$F('evtDay'));">
        <input type="button" value="Cancel" onClick="Element.hide('editEvent');">

Ben bu işlevini çağırdığınızda:

function editEvent(eid, body) {

	if(Element.visible('editEvent')) {
		// do nothing, its already visble.
	} else {
		setTimeout("Element.show('editEvent')", 300);
	}
}

Form, daha sonra önceki eid ve düzenlenmiş vücut geçirerek aşağıdaki işlevini çağırır:

function updateEvent(eid, body) {

	new Ajax.Updater('editEvent','rpc.php', {method: 'post', postBody: 'action=updateEvent&&eid='+eid+'&body='+body+'', onSuccess: Element.hide('editEvent')});

	if(Element.visible('editEvent')) {
	Element.hide('editEvent');
	} else {
		setTimeout("Element.show('editEvent')", 300);
	}
}

Ben sizin önerilerinizi takdir! Aşağıda çabaladılar budur!

Hi everyone and thanks in advance for you help! This is really driving me nuts! What I'm trying to do is edit an event on my calendar by editing the text echoed in this form on my PHP file :

echo '<div style="background-color: white; margin-bottom: 4px; padding: 1px;" id="event_'.$e_id.'">
<textarea id="evtBody" cols="20" rows="5" wrap="hard"> '. nl2br($e_body) .'/textarea>
<input name="save" id = "save" type="button" value="Save" style="height:1.8em;width:3.5em;" onClick="updateEvent(('.$e_id.'), $F(\'evtBody\'))"/>

Her fonksiyon benim veritabanında izin verilmez boş bir dize döndürür son bölümünde $F(\'evtBody\') yanında çalışıyor.

İşte benim şimdiki fonksiyonu bulunuyor:

function updateEvent(eid, body) {

	alert(eid);// returns the Event ID correctly
	alert(body);// returns an empty string instead of text in the text area

	new Ajax.Updater('editEvent','rpc.php', {method: 'post', postBody: 'action=updateEvent&&eid='+eid+'&body='+body+'', onSuccess: Element.hide('editEvent')});

	if(Element.visible('editEvent')) {
	Element.hide('editEvent');
	} else {
		setTimeout("Element.show('editEvent')", 300);
	}
}

3 Cevap

Doğru $ F () işlevini kullanarak değiliz. Bkz this Prototype page. Sen $ F () bir eleman geçmesi gerekiyordu ama bunun yerine bir kimlik geçiyoruz. Yani, bunun yerine:

$F('evtBody')

Bu kullanarak olmalıdır:

$F($('evtBody'))

Ben (bir karmaşa It'sa bit ...) kodu doğru okursanız $ F çözümlü / idam asla böylece, sen tek tırnak kullanıyorsanız, sadece html kaynak kodu $ F gösterecektir.

Bu kod ile UpdateEvent () işlevini değiştirin:

function updateEvent(eid, body) {

    new Ajax.Updater('editEvent','rpc.php', {
		method: 'post',
		parameters: {
			action: 'updateEvent',
			eid: eid,
			body: body
		},
		onSuccess: Element.hide('editEvent')
	});

    if(Element.visible('editEvent')) {
    Element.hide('editEvent');
    } else {
            setTimeout("Element.show('editEvent')", 300);
    }
}

Eğer çalışırsa söyle