$event = $fieldset->addField('parent_id', 'select', array(
'label' => Mage::helper('gallery')->__('Parent'),
'required' => true,
'name'=>'parent_id',
'values'=>$ac,
'onchange'=>'CheckSelectedItem()',
));
$event->setAfterElementHtml('<script>
function CheckSelectedItem()
{
var ddllist= window.document.getElementById("parent_id");
var itemName= ddllist.options[ddllist.selectedIndex].value;
如何使一个ajax调用form.php的文件驻留在根文件夹名为"gallerydata.php"。我有一个名为"画廊"的扩展从后端上传图像。所以我想通过使用ajax从下拉菜单中获取艺术家的id,这使得调用文件"gallerydata.php"
if(window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
xmlhttp1=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp1=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert(xmlhttp.responseText);
}
}
xmlhttp.open("GET","http://122.170.97.189:81/electriccityusa/gallerydata.php?q="+itemName,true);
}
</script>');
您可以简单地在adminhtml表单中使用ajax:
$event = $fieldset->addField('parent_id', 'select', array(
'label' => Mage::helper('gallery')->__('Parent'),
'required' => true,
'name' => 'parent_id',
'values' => $ac,
'onchange' => 'checkSelectedItem(this)',
));
$event->setAfterElementHtml("<script type="text/javascript">
function checkSelectedItem(selectElement){
var reloadurl = '". $this->getUrl('your-module-controller-action')."parent_id/' + selectElement.value;
new Ajax.Request(reloadurl, {
method: 'get',
onLoading: function (transport) {
$('parent_id').update('Searching...');
},
onComplete: function(transport) {
$('parent_id').update(transport.responseText);
}
});
}
</script>");
现在您可以获取选择值并按照自定义模块控制器动作(在reloadurl中提到)的要求执行操作。