Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery XPAGES在使用$.ajax时不会保存现有文档_Jquery_Ajax_Xpages - Fatal编程技术网

Jquery XPAGES在使用$.ajax时不会保存现有文档

Jquery XPAGES在使用$.ajax时不会保存现有文档,jquery,ajax,xpages,Jquery,Ajax,Xpages,我在XPAGES上尝试了select2插件。对于新文档,它工作正常,但对于现有文档,它无法保存。我发现这个问题的根源是“XPAGES在使用$.ajax和XAgent时不会保存现有文档” 下面是我的简单示例(test.xsp):` 和XAgent(example.xsp) 当我打开url“server/database.nsf/test.xsp”时。TxtNama将从example.xsp获得值:“ajax测试”,我将其保存。。新文档可以毫无问题地保存 但是,当我打开保存的文档url=“s

我在XPAGES上尝试了select2插件。对于新文档,它工作正常,但对于现有文档,它无法保存。我发现这个问题的根源是“XPAGES在使用$.ajax和XAgent时不会保存现有文档”

下面是我的简单示例(test.xsp):`


和XAgent(example.xsp)


当我打开url“server/database.nsf/test.xsp”时。TxtNama将从example.xsp获得值:“ajax测试”,我将其保存。。新文档可以毫无问题地保存

但是,当我打开保存的文档url=“server/database.nsf/test.xsp?documentId=xxxxxxxxxxxxx”时。然后填充txtalmat值并保存它。无法保存txtAlamat中的任何更改

但如果我设置xp:scriptBlock rendered=“false”并再次尝试填充txtalmat值,则txtalmat的更改将被保存

这很奇怪

有两件事:

  • 检查是否允许您编辑文档并保存更改。可能是您没有足够的权限更新它

  • 我测试了您的场景:opened test.xsp,创建了一个文档,opened test.xsp?documentId=xxx,对字段进行了更改,并成功地更新了文档。请注意,如果随后再次打开test.xsp?documentId=xxx,则会显示更新后的值。但是,如果单击Edit按钮,XPage将处于编辑模式,并且输入的值将更改回“ajax测试”,因为ajax调用将再次启动。您可能希望更改代码,以便只对新文档执行ajax调用。如果要确保保存更改,请使用Notes客户端查看文档


我不明白您想做什么:我看不到您使用select2,我不明白您为什么要调用ajax函数,我也看不到这个示例。xsp正在尝试保存任何内容。下面是一个Select2 with XPages的演示,可能很有用:很抱歉让您感到困惑。。我尝试使用select2插件。但XPAGES只能为新文档保存文档。我试图压缩一些代码来找到这个问题的根本原因。我发现,在我的数据库中,当我使用$.ajax时,我无法保存对现有文档的任何更改。感谢您的回复-我拥有此数据库ACL的manager访问权限-我也尝试过此方案。。但它仍然只能保存为新文档。对于现有文档,如果禁用scriptBlock render(禁用$.ajax调用),则可以保存任何更改。我仍然不知道是什么导致了这个奇怪的问题。您是否介意将您的测试场景nsf发送到我的邮箱?请把它寄到hedikasmanto@gmail.com因此,我可以比较代码中的错误。尝试以下操作:使用test.xsp创建文档,使用test.xsp?id=xxx打开该文档,单击编辑(该字段将更改回“ajax测试”),更新该字段,然后单击保存。现在使用Notes客户端检查数据库中的文档。你会看到它已经改变了。代码的问题是每次打开文档时Ajax调用都会“重置”字段。该表单有两个字段:Nama和ALMAT。我只设置了$.ajax,用example.xsp中的“ajax测试”填充“Nama”。我将“Alamat”字段设置为自由文本,当我试图编辑现有文档上的“Alamat”时,它没有保存。我还添加了“打印('保存成功')在postSave上,只有在我保存新文档而不是现有文档时才会触发该脚本。Mark。我已尝试创建新数据库..它的工作方式与您所说的一样..因此我认为我当前的数据库出现了一些错误,我不知道在哪里..我将找到此问题的根本原因。但感谢您的帮助..我非常感激..我找到了我在应用程序设置中设置xsp.persistence.viewstate=delta的“罪魁祸首”。当我尝试在当前数据库中删除它时,它解决了这个问题。。
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom"
xmlns:xp_1="http://www.ibm.com/xsp/coreex">
<xp:this.data>
    <xp:dominoDocument var="document1" formName="Employee"
        action="openDocument" computeWithForm="both">
    </xp:dominoDocument>
</xp:this.data>
<xc:coreHeader theme="blue"></xc:coreHeader>
<xp:button value="Save" id="button1">
    <xp:eventHandler event="onclick" submit="true" refreshMode="complete">
    <xp:this.action>
        <![CDATA[#{javascript:currentDocument.save();context.redirectToPage("grid.xsp");}]]>
    </xp:this.action>
    </xp:eventHandler>
</xp:button>
<xp:button id="button2" rendered="#{javascript:!currentDocument.isEditable()}" value="Edit">
    <xp:eventHandler event="onclick" submit="true" refreshMode="complete">
        <xp:this.action>
        <xp:changeDocumentMode mode="toggle" var="document1"></xp:changeDocumentMode>
        </xp:this.action>
    </xp:eventHandler>
</xp:button>

<xp:label for="forteInputText" styleClass="control-label" value="Label"></xp:label>
<xp:div styleClass="controls" >         
    <xp:inputText id="txtNama" value="#{document1.Nama}"></xp:inputText>
    <xp:inputText id="txtAlamat" value="#{document1.Alamat}"></xp:inputText>
</xp:div>
<xp:scriptBlock rendered="true">
    <xp:this.value><![CDATA[// DECLARATION
        dojo.ready(function(){
            $.ajax({
                url:'example.xsp'
            }).done(function(data){
                x$('#{id:txtNama}').val(data);
            })  
    })]]></xp:this.value>
</xp:scriptBlock>
<xc:coreFooter></xc:coreFooter>
</xp:view>
    <?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" rendered="false">
    <xp:this.afterRenderResponse><![CDATA[#{javascript:
    try{
        var externalContext = facesContext.getExternalContext();
        var writer = facesContext.getResponseWriter();
        var result = "ajax testing";
        writer.write(result);
        writer.endDocument();
    }  catch(e){
        _dump(e); 
    }
}]]></xp:this.afterRenderResponse>
</xp:view>