0

二日間で二問目。同じスクリプト。while ループには、2 つのテーブル セルを作成する 2 つの行があります。コメントアウトされていない最初のものは機能しており、結果は本来あるべき場所になります。コメントアウトされたものは機能しておらず、その理由がわかりません。

mysql テーブルの列の名前を確認しましたが、正しいです。テーブル作品から約10列。しかし、最後の9人はそうではありません。私が見ることができる唯一のことは、mysql 列の名前が長いことです。名前が長すぎることはありますか?

ajax 呼び出しはエラーを起こしていません。そして、テーブルの境界線を =1 にすると、セルはあるが何も入っていないことがわかります。両方がコメントアウトされていない場合、2 番目は 1 番目をキャンセルします。しかし、それ自体で最初に結果を出します。

何か案は?

文法が間違っていたり、解決策が簡単だったりした場合は申し訳ありません。

どんな提案でも大歓迎です。

getdata.inc.php:

//Output results
if(!$facebook)
{
    mysql_close();
    echo json_encode('There was an error running the query: ' . mysql_error());
}
elseif(!mysql_num_rows($facebook))
{
    mysql_close();
    echo json_encode('No results returned');
}
else
{
    $output_string = '';
    $output_string .=  '<table border="0">';
    while($row = mysql_fetch_assoc($facebook))
    {

        $output_string .= '<tr>';
        $output_string .= '<td>'.$row['sombem_profiler_customers_first_name'].'</td>';
        //$output_string .= '<td>'.$row['sombem_profiler_customers_adress_sending_street'].'</td>';
        $output_string .= '</tr>';
    }
    $output_string .= '</table>';
}

mysql_close();
// This echo for jquery 
//$output_string = $_POST['personalNumber'];
echo json_encode($output_string);
?>

ajax.js:

function ajaxCall(){

var pnumber = document.getElementById('search-personalNumber').value;

$.ajax({
    url: 'db/getdata.inc.php',
    type:'POST',
    dataType: 'json',
    data: { personalNumber: pnumber },
    success: function(output_string){
        $('#result_table').append(output_string);
    },
    error: function (xhr, ajaxOptions, thrownError) {
    alert(xhr.status);
    alert(thrownError);
  }
});
}
4

1 に答える 1

0

問題だったのは特殊文字でした。このスクリプトはインターネットで見つけました。

function umlaute($text){ 
    $returnvalue=""; 
    for($i=0;$i<strlen($text);$i++){ 
        $teil=hexdec(rawurlencode(substr($text, $i, 1))); 
        if($teil<32||$teil>1114111){ 
            $returnvalue.=substr($text, $i, 1); 
        }else{ 
            $returnvalue.="&#".$teil.";"; 
        } 
    } 
    return $returnvalue; 
} 

$output_string .= '<td>'.umlaute($row['comhem_profiler_customers_adress_sending_street']).'</td>';

これにより、文字が html バリアントに変換されました。私を正しい道に導いてくれてありがとう。乾杯!

于 2012-11-09T11:18:33.370 に答える