0

大家,我有问题。使用 jQuery 发出 ajax 请求。这是错误的。我尝试删除一些包含“换行符、双引号等”的变量。没有错误,一切都很好。如何解决这个问题?

$.ajax({
    url: 'layout/owner/required/processing/get-product-data.php',
    cache: false,
    data: {idStr: thisProduct}
});

请求的 php 文件是:

<?php
header('Content-type: text/javascript');

$printData = '
var editData = {
    cat: "' . $cat . '",
    subcat: "' . $subcat . '",
    id: "' . $id . '",
    name: "' . $name . '",
    description: "' . $description . '",
    price: "' . $price . '",
    dlong: "' . $long . '",
    dwidth: "' . $width . '",
    dheight: "' . $height . '",
    spec: "' . $spec . '",
    fac: "' . $fac . '",
    rp: "' . $rp . '",
    cm: "' . $cm . '",
    color: "' . $color . '"
};
';

echo $printData;
?>

editData.description , editData.spec, editData.fac 包含回车/换行符,嗯,说它们包含 html

4

1 回答 1

3

将它们放在 PHP 关联数组中,然后使用json_encode. 这将确保正确处理字符串中的字符。

例如,像这样:

<?php
header('Content-type: text/javascript');
$a = array(
    cat =>  $cat,
    subcat =>  $subcat,
    id =>  $id,
    name =>  $name,
    description =>  $description,
    price =>  $price,
    dlong =>  $long,
    dwidth =>  $width,
    dheight =>  $height,
    spec =>  $spec,
    fac =>  $fac,
    rp =>  $rp,
    cm =>  $cm,
    color =>  $color
);
echo 'var editData = ' . json_encode($a) . ';';
?>
于 2013-08-06T06:47:26.470 回答