PHP和Jquery - AJAX如何工作?

时间:2013-04-26 02:31:57

标签: php jquery ajax

希望这有意义......但我正在尝试将一些初始ajax调用写入测试php页面,并且我在控制台中收到错误:

Uncaught Error: Syntax error, unrecognized expression: {"projectId":"John","Project":"Some Project Name"} jquery-1.9.min.js:4
st.error jquery-1.9.min.js:4
ft jquery-1.9.min.js:4
wt jquery-1.9.min.js:4
st jquery-1.9.min.js:4
b.fn.extend.find jquery-1.9.min.js:4
b.fn.b.init jquery-1.9.min.js:3
b jquery-1.9.min.js:3
(anonymous function) download.js:27
c jquery-1.9.min.js:3
p.add jquery-1.9.min.js:3
(anonymous function) download.js:25
b.event.dispatch jquery-1.9.min.js:3
v.handle jquery-1.9.min.js:3

这是我的jquery ajax调用:

$.get('test.php', {object_ID: 'kjiyu-drtfg-hjuyt-hiytr'})
.done(function(data) {
    console.log(data);
    $(data).each(function(index, element) {
        $('#fileList').append('<option value="' + element.projectId + '">' + element.Project + '</option>');
    });
});

这是我的test.php页面:

<?php 
  echo json_encode(array(
              array("projectId"=>"John","Project"=>"Some Project Name"),
              array("projectId"=>"John2","Project"=>"Some Project Name 2")
            ));
?>

任何建议将不胜感激。最后,这将连接到一个从数据库中查找值的实际页面......我只想进行第一轮。

修改

我建议更改数组但现在收到此错误:

XMLHttpRequest cannot load file:///C:/Users/v-sthaff/Documents/School/Spring%202013/BIT%20286/Website/test.php?object_ID=kjiyu-drtfg-hjuyt-hiytr. Origin null is not allowed by Access-Control-Allow-Origin. jquery-1.9.min.js:5
send jquery-1.9.min.js:5
b.extend.ajax jquery-1.9.min.js:5
b.(anonymous function) jquery-1.9.min.js:5
(anonymous function) download.js:24
b.event.dispatch jquery-1.9.min.js:3
v.handle

XMLHttpRequest cannot load file:///C:/Users/v-sthaff/Documents/School/Spring%202013/BIT%20286/Website/test.php?projectId=abcde-abcde-abcde-abcde. Origin null is not allowed by Access-Control-Allow-Origin. jquery-1.9.min.js:5
send jquery-1.9.min.js:5
b.extend.ajax jquery-1.9.min.js:5
b.(anonymous function) jquery-1.9.min.js:5
(anonymous function) download.js:43
b.event.dispatch jquery-1.9.min.js:3
v.handle

编辑 - 解决方案: 将文件移动到我的服务器似乎解决了问题以及更新的jquery:

$.getJSON('test.php', {object_ID: 'kjiyu-drtfg-hjuyt-hiytr'})
.done(function(data) {
    console.log(data);
    $(data).each(function(index, element) {
        alert(element.projectId + ' ' + element.Project);
        $('#fileList').append('<option value="' + element.projectId + '">' + element.Project + '</option>');
    });
});

1 个答案:

答案 0 :(得分:0)

你没有返回'数据'数组,

试试这个,

$.get('test.php', {object_ID: 'kjiyu-drtfg-hjuyt-hiytr'})
  .done(function(data) {
    console.log(data);
    $('#fileList').append('<option value="' + data.projectId + '">' + data.Project + '</option>');
});

。如果您的测试数据看起来像是

,则会循环播放
<?php 
  echo json_encode(array(
              array("projectId"=>"John","Project"=>"Some Project Name"),
              array("projectId"=>"John2","Project"=>"Some Project Name 2")
            ); 
?>

在这种情况下,您将在每个循环中使用element.projectId。