Ajax和PHP交互的小困难
Minor difficulties with Ajax and PHP interaction
我在CodeIgniter工作,我试图吐出我在一个表中所有的项目,并订购他们,因为他们应该使用下拉菜单。我希望它发生在没有页面重载和没有提交按钮,所以我使用这个jQuery函数做出立即反应,当它被改变:
$(document).ready(function() {
$(".order-by-select").click(function() {var orderValue = this.value;
$.post("<?php echo base_url() ?>welcome/index", {val: orderValue}, function(data) {
alert(data);
});
});
里面可以看到$。post方法,我试图将数据发送到php脚本(orderValue)。之后,我得到一个警报(甚至不确定,为什么我需要它(也许检查是否一切正常))
在PHP中,我正在接收选择的选择选项,并将变量($data['people']
)分配给MySQL查询的结果(即放置在模型中),以便能够在视图中访问它。这个- $_POST['val']
表示,我如何排序列表(select * from people order by $theorder"
) ($theother只是查询函数中的一个变量。接收$_POST['val']
))的值
if(isset($_POST['val'])) {
$data['people'] = $this->database->listPeople($_POST['val']);
exit;
}
之后,我在视图中收到这个变量,我运行foreach循环来获取数组的不同部分(人的名字,他的年龄等),并将其放置在他们应该的方式。
问题是-如果我这样做没有ajax,当我有静态排序值-一切工作正常。我并不是说这就是问题所在:D,问题基本上是它不能与ajax一起工作……我试图在js回调中接收数组并使用
创建布局$.each(eval(data), function() {
$('#container').text('<div>' + eval(res).name + '</div>');
});
但这也是一个失败…
我应该如何组织和创建我的代码,使一切正常工作?
我对Ajax有点陌生,所以我希望我能从你们那里学到如何做到这一点。我已经搜索了整个互联网,并看到了很多ajax教程和其他类型的材料(例如StackOverflow),但我仍然无法得到,我如何才能在我的特殊情况下做到这一切。我已经浪费了大约12个小时试图解决这个问题,但无法做到,所以我希望你能告诉我是否有任何有用的拯救。
谢谢您的考虑。
嗨,你需要3个部分使ajax工作,
- 生成页面的服务器端代码
- ajax(客户端)调用和响应
另外,完全替换表比挑选元素更容易。但这取决于你。
假设我们有一个ajax调用的页面
<script type="text/javascript" >
$(document).ready(function() {
$(".order-by-select").click(function() {var orderValue = this.value;
$.post("<?php echo base_url() ?>welcome/index", {val: orderValue}, function(data) {
alert(data);
});
});
</script>
现在您似乎有一些json响应,我假设您是从上面的警报中获得的;
[{"id":"1","name":"Nick","age":"18"},{"id":"2","name":"John","age":"23"}]
我还假设它来自于
之类的东西echo json_encode( array( array('id'=>1, ...), array('id'=>2 ...) .. );
在你告诉服务器这是json之前,这是很重要的,你使用一个报头,但是你不能在报头之前输出任何东西,在json报头之后,所有的输出必须是json格式,否则它不会工作,这就像告诉浏览器这是html,或图像等内容。
Header("Content-Type: application/json");
echo json_encode( ....
有时你可以不这样做,但通常你需要使用eval或其他东西,通过告诉浏览器它的json你不需要它。现在做一个警报是伟大的,但如果你看到字符串数据[{"id": ..
你的头是错误的,你应该得到类似[object]
当你做警报。
不,一旦我们有了真实的Json对象我们就可以利用所有美妙的数据
<script type="text/javascript" >
$(document).ready(function() {
$(".order-by-select").click(function() {var orderValue = this.value;
$.post("<?php echo base_url() ?>welcome/index", {val: orderValue}, function(data) {
$.each(data, function(i,v){
alert(v.id);
alert(v.name);
});
});
});
</script>
这应该循环遍历所有数据并发出2个警报,首先是id,然后是名称,对吧?接下来,使用.text()
或.append()
<script type="text/javascript" >
$(document).ready(function() {
$(".order-by-select").click(function() {var orderValue = this.value;
$.post("<?php echo base_url() ?>welcome/index", {val: orderValue}, function(data) {
$.each(data, function(i,v){
$('#test').append('<p>'+v.id+'</p>');
});
});
});
</script>
<p id="test" ></p>
- 使用php或javascript从facebook相册URL中删除多余的部分
- 将PHP变量传递给jQuery时遇到问题
- 通过javascript重定向html传递php变量
- 将数组从PHP传递到Javascript
- 如何在php文件中获取$.post-ajax传递的值
- Javascript运行php文件,然后下载文件
- PHP中的setcookie仅适用于localhost
- 如何使用jquery处理php循环通过元素
- 意外的PHP/jQuery/JSON交互差异
- Ajax,JSON对象与php的交互
- 如何在javascript交互的php页面之间正确传递变量
- 倒数计时器与php mysql交互
- 基于单选按钮状态的链接点击动态生成href: PHP与javascript的交互
- 我如何在PHP和Jquery的帮助下使用chrome扩展与我的数据库进行交互
- 通过PHP进行表单交互
- Ajax和PHP交互的小困难
- 如何使用javascript从php脚本交互获取数据
- 扩展如何与数据库交互而不强制用户安装服务器和php
- 如何使用 PHP 与 JavaScript 变量进行交互
- 选择标签php生成的代码需要javascript交互