gpt4 book ai didi

php - 数据类型 json 的 jQuery $.ajax 请求不会从 PHP 脚本中检索数据

转载 作者:IT王子 更新时间:2023-10-29 00:15:24 26 4
gpt4 key购买 nike

我一直在寻找解决方案,但找不到任何有效的方法。我试图从数据库中获取一堆数据,然后通过表单中的 AJAX 自动完成输入字段。为此,我决定使用 json,因为为什么不呢?或者,我一直在考虑只发回一个定界字符串,然后将其标记化,事后看来,这会容易得多,而且让我头疼……既然我决定使用 json,我想我应该坚持下去,找出问题所在!发生的情况是,当执行 get_member_function() 时,会在警告对话框中弹出一个错误,并显示“[object Object]”。我也尝试过使用 GET 请求,并将 contentType 设置为“application/json;字符集=utf-8”。 las,没有骰子。谁能建议我做错了什么?保重,彼得。

我的 javascript/jQuery 函数如下:

function get_member_info()
{

var url = "contents/php_scripts/admin_scripts.php";
var id = $( "select[ name = member ] option:selected" ).val();

$.ajax(
{

type: "POST",
dataType: "json",
url: url,
data: { get_member: id },
success: function( response )
{

$( "input[ name = type ]:eq( " + response.type + " )" ).attr( "checked", "checked" );
$( "input[ name = name ]" ).val( response.name );
$( "input[ name = fname ]" ).val( response.fname );
$( "input[ name = lname ]" ).val( response.lname );
$( "input[ name = email ]" ).val( response.email );
$( "input[ name = phone ]" ).val( response.phone );
$( "input[ name = website ]" ).val( response.website );
$( "#admin_member_img" ).attr( "src", "images/member_images/" + response.image );

},
error: function( error )
{

alert( error );

}

} );

}

而“contents/php_scripts/admin_scripts.php”中的相关代码如下:

   if( isset( $_POST[ "get_member" ] ) )
{

$member_id = $_POST[ "get_member" ];
$query = "select * from members where id = '$member_id'";

$result = mysql_query( $query );

$row = mysql_fetch_array( $result );

$type = $row[ "type" ];
$name = $row[ "name" ];
$fname = $row[ "fname" ];
$lname = $row[ "lname" ];
$email = $row[ "email" ];
$phone = $row[ "phone" ];
$website = $row[ "website" ];
$image = $row[ "image" ];

$json_arr = array( "type" => $type, "name" => $name, "fname" => $fname, "lname" => $lname, "email" => $email, "phone" => $phone, "website" => $website, "image" => $image );

echo json_encode( $json_arr );

}

最佳答案

我想我知道这个...

尝试使用 PHP 的 header() 将您的 JSON 作为 JSON 发送功能:

/**
* Send as JSON
*/
header("Content-Type: application/json", true);

虽然您传递的是有效的 JSON,但 jQuery 的 $.ajax 并不这么认为,因为它缺少 header 。

jQuery 过去没有标题就没问题,但它被改回了几个版本。

还有

确保您的脚本返回有效的 JSON。使用FirebugGoogle Chrome's Developer Tools在控制台中检查请求的响应。

更新

您还需要更新代码以清理 $_POST 以避免 sql 注入(inject)攻击。以及提供一些错误捕获。

if (isset($_POST['get_member'])) {

$member_id = mysql_real_escape_string ($_POST["get_member"]);

$query = "SELECT * FROM `members` WHERE `id` = '" . $member_id . "';";

if ($result = mysql_query( $query )) {

$row = mysql_fetch_array($result);

$type = $row['type'];
$name = $row['name'];
$fname = $row['fname'];
$lname = $row['lname'];
$email = $row['email'];
$phone = $row['phone'];
$website = $row['website'];
$image = $row['image'];

/* JSON Row */
$json = array( "type" => $type, "name" => $name, "fname" => $fname, "lname" => $lname, "email" => $email, "phone" => $phone, "website" => $website, "image" => $image );

} else {

/* Your Query Failed, use mysql_error to report why */
$json = array('error' => 'MySQL Query Error');

}

/* Send as JSON */
header("Content-Type: application/json", true);

/* Return JSON */
echo json_encode($json);

/* Stop Execution */
exit;

}

关于php - 数据类型 json 的 jQuery $.ajax 请求不会从 PHP 脚本中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5147522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com