Php 带引导的eldarion ajax
有人使用eldarion ajax插件吗?以前称为引导ajax 我有它的工作,它发送呼叫到另一个页面和它的成功,我只是不能得到数据从该页面回来Php 带引导的eldarion ajax,php,jquery,ajax,eldarion-ajax,Php,Jquery,Ajax,Eldarion Ajax,有人使用eldarion ajax插件吗?以前称为引导ajax 我有它的工作,它发送呼叫到另一个页面和它的成功,我只是不能得到数据从该页面回来 // this is ajax.php <form method="post" action="ajax-here.php" class="ajax" data-append="#result"> <input type="text" name="text" /> <input type="submit" />
// this is ajax.php
<form method="post" action="ajax-here.php" class="ajax" data-append="#result">
<input type="text" name="text" />
<input type="submit" />
</form>
<div id="result"> </div>
// this is ajax-here.php
$text = $_POST['text'];
echo $text;
//这是ajax.php
//这是ajax-here.php
$text=$_POST['text'];
echo$文本;
我只想让ajax-here.php的结果与发生ajax的页面上的ID结果一起显示在div中。任何建议都很好。我喜欢使用这个插件,因为它工作得很好,只是不知道如何将数据附加到我想要的div中。谢谢我不熟悉Eldarion AJAX插件。我刚读了这本书,说实话,我不喜欢它。(尽管它确实因为名字酷而赢得了分数。) 有太多的“魔法”在继续。您不需要指定发送和接收数据的格式。如果您想更改内容,必须使用HTML
data-
属性。对我来说,这违反了关注点分离的原则,即网站结构的每个部分都应该有一个目的。例如,HTML应该定义页面的结构,CSS应该定义样式,Javascript应该定义交互。在我看来,用HTML属性定义AJAX活动似乎是荒谬的
但没关系。让我们看看您遇到的具体问题,即如何将数据返回到Eldarion。让我们再次查看自述文件:
通过向已返回的JSON添加一个名为“html”的顶级属性(即呈现内容),可以轻松扩展服务器端代码对此的支持。与backbone.js构建web应用程序的方法不同,eldarion ajax利用服务器端模板呈现引擎来呈现和返回HTML片段
因此,Eldarion希望收到一个JSON结构,其中包含一个名为html
的顶级属性,该属性包含呈现的内容。因此,它预期的结构大致如下:
{
"html": "<p>The content that should be appended to #result.</p>"
}
我已经建立了一个演示如何工作的程序。显然这有点不同,因为我必须使用JSFIDLE API,但您可以大致了解它的工作原理。免责声明:我没有使用过这个框架,这是我第一次听说它 尽管如此,从中可以看出,它多次指定服务器响应应为JSON格式 如果您在响应中包含一个属性
html
,那么您想要做的应该是可能的
// ajax-here.php
$response['html'] = $_POST['text'];
return json_encode($response);
这是生成的响应:
{
"html": "The text sent to the server"
}
为什么不依赖一个只向AJAX函数提交调用的按钮呢 在该函数中,您告诉AJAX从PHP文件中获取数据,并使用返回到上一个文档中
document.getElementById("result").innerHTML=xmlhttp.responseText;
似乎比你现在用的更有意义。。。但是,嘿,可能就是我
编辑:
例如: somePHPFile.php
<input type="text" name="text" id="text" />
<button type="button" onclick='ajaxCALL();'>SomeTEXT</button>
<div id="result"> </div>
<script>
function ajaxCALL()
{
var val=document.getElementById("text").innerHTML;
if (val.length==0){
document.getElementById("result").innerHTML="";
return;
}
if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }
else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("result").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","ajax-here.php",true);
xmlhttp.send("text="+val);
}
</script>
一些文字
或者你可以做一些类似的事情:
<input type="text" onblur='ajaxCALL();' name="text" id="text" />
<div id="result"> </div>
当文本框失去焦点时,启用模糊触发。如果您希望通过AJAX获得即时响应,请使用“onkeyup”,即:在键入时
somePHPFile.php中结束正文标记之前的脚本
<input type="text" name="text" id="text" />
<button type="button" onclick='ajaxCALL();'>SomeTEXT</button>
<div id="result"> </div>
<script>
function ajaxCALL()
{
var val=document.getElementById("text").innerHTML;
if (val.length==0){
document.getElementById("result").innerHTML="";
return;
}
if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }
else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("result").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","ajax-here.php",true);
xmlhttp.send("text="+val);
}
</script>
函数ajaxCALL()
{
var val=document.getElementById(“text”).innerHTML;
如果(val.length==0){
document.getElementById(“结果”).innerHTML=“”;
返回;
}
if(window.XMLHttpRequest){xmlhttp=newxmlhttprequest();}
else{xmlhttp=newActivexObject(“Microsoft.xmlhttp”);}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“结果”).innerHTML=xmlhttp.responseText;
}
}
open(“POST”,“ajax here.php”,true);
xmlhttp.send(“text=“+val”);
}