Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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
Php 带引导的eldarion ajax_Php_Jquery_Ajax_Eldarion Ajax - Fatal编程技术网

Php 带引导的eldarion 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" />

有人使用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" />  
 </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”);
}