我正在尝试在进行ajax调用之后填充元素,但我不太确定这是否是正确的方法,如果是,我出错了。
这是我的代码......
$(document).ready( function() {
$("#edit_delete").click(function() {
$.post('mySelect.php', $("#edit_delete").serialize(), function(result) {
$('#message1').html(<?php echo $myTest; ?>);
$('#message2').html(<?php echo $myOtherTest; ?>);
});
}
});
mySelect.php:
<?php include '../../includes/connection.php' ?>
<?php
$selected_user = $_POST["users"];
$result = mysql_query("SELECT * FROM users WHERE id = $selected_user");
$row = mysql_fetch_array($result, MYSQL_ASSOC);
?>
<?php $myTest = $row['id']; ?>
<?php $myOtherTest = $row['name']; ?>
<?php mysql_close($con); ?>
(如果您需要更多信息请告诉我,请随时编辑我的问题,这样才有意义!)
答案 0 :(得分:3)
进行AJAX调用后,PHP脚本的整个输出(在您的情况下)放在回调的'results'参数内。
这意味着如果您在mySelect.php中echo 'Hello!';
,则结果将包含字符串'Hello!'。
如果您想提醒结果,那么您所要做的就是:在回调中alert(results);
。
正如其他人指出的那样,您还可以查看使用json_encoded数组来帮助您更好地利用从服务器发回的数据。
答案 1 :(得分:1)
不,您应该将数据回送给客户端,然后再使用它
<?php include '../../includes/connection.php' ?>
<?php
$selected_user = $_POST["users"];
$result = mysql_query("SELECT * FROM users WHERE id = $selected_user");
$row = mysql_fetch_array($result, MYSQL_ASSOC);
//prepare an array to return
$return = array();
$return['id'] = $row['id'];
$return['name'] = $row['name'];
//set the header
header('application/json');
//encode it and echo it back
echo json_encode($return);
然后
$.post('mySelect.php', $("#edit_delete").serialize(), function(result) {
$('#message1').html(result.id);
$('#message2').html(result.name);
});
您执行此操作是因为您正在对服务器进行异步调用:您不会重新加载页面,只需拨打电话并获取一些数据
答案 2 :(得分:1)
结果的工作方式是它发送应用程序的整个输出。因此变量不会按预期工作。
相反,你想做的是回复json_encode(javascript对象表示法),如:
<?php
echo json_encode(array('myTest' => $row['id'], 'myOtherTest' => $row['name']));
?>
然后你可以通过以下方式调用它:
results.myTest来自ajax回调
答案 3 :(得分:1)
在我看来,你应该避免在$ .post函数的回调中使用php。 你可以使用ajax做你想做的一切。
Javascript代码:
$(document).ready( function() {
$("#edit_delete").click(function() {
$.ajax({
type: "POST",
url: "mySelect.php",
data: 'users='+$("#edit_delete").serialize(),
success: function(data) {
var result = $.parseJSON(data);
$('#message1').html(result.id);
$('#message2').html(result.name);
}
});
}
});
PHP代码:
<?php
include '../../includes/connection.php';
$selected_user = $_POST["users"];
$result = mysql_query("SELECT * FROM users WHERE id = $selected_user");
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$return = array(
'id' => $row['id'],
'name' => $row['name']
);
mysql_close($con);
echo json_encode($return);
?>
尽量避免在每行中打开和关闭php标记。它足够了一个在丝的前端和一个在它的末端。
抱歉我的英文不好。
祝你好运答案 4 :(得分:0)
您应该查看jQuery manual
有一个使用JSON的例子
$.post("test.php", { "func": "getNameAndTime" },
function(data){
console.log(data.name); // John
console.log(data.time); // 2pm
}, "json");
在您提供的关于Javascript变量结果的代码中,将填充您回显的任何内容。