2017-12-28 21 views
0

入力フィールドに値を表示する際に問題が発生しています。私は過去にこれをやっていて、コードが間違っているところを知りませんでした。Ajaxリクエストデータ型json

id = "input"の入力フィールドとid = "button"のボタンがあります。これは私のjqueryのコードです:

$("#button").click(function() { 

     var uid = <?php echo $user['uid']; ?>; 

     $.ajax({ 
      url: "php/fetchUserData.php", 
      method: "POST", 
      data: { 
      uid: uid 
      }, 
      dataType: "json", 
      success: function(text) {  
      $("#input).val(text.bedrijfsnaam); 
      }  
     }); 

}); 

そしてここでは、PHP/fetchUserData.phpファイルの上のコードです:

<?php 

include_once 'dbc.php'; 

if($_POST){ 

    $uid = $_POST['uid']; 

    $sql = "SELECT * FROM users WHERE uid = '$uid'"; 
    $query = mysqli_query($dbc, $sql); 
    $result = mysqli_fetch_assoc($query); 

    echo json_encode($result); 

} 

?> 

UPDATE:

  • のvar_dump($結果)が表示されません連想配列
  • console.log(テキスト)は結果を与えません。
  • dataTypeをtextに変更し、json_encode($ result)の代わりに$ result ['bedrijfsnaam]]がすべてうまくいったら。問題は、bedrijfsnaam(=会社名)以上のものをロードしたいということです。

UPDATE 2:

私は非常に同じコードを使用しますが、データベース内の別のテーブルでそれは作品をした場合。私は本当にここに問題があるかもしれないという手掛かりを持っていません... 私はusersテーブルで何が問題になるのかを調べていますが、テーブルに4行ありますが、カーディナリティは0です。データベースの他のテーブルでは、カーディナリティ値は行数を表します。それはこの問題と関係がありますか?

UPDATE 3:代わりに、クエリの

$sql = "SELECT * FROM users WHERE uid = '$uid'"; 

は、私が試した:

$sql = "SELECT bedrijfsnaam FROM users WHERE uid = '$uid'"; 

そして、それは働きました!そして、私は列の名前を追加し始めました。すべての列が特定の列までよくなりました。土地(国を意味します)は、表の他の多くの列と同じようにvarchar列です。

この特定の列でエラーが発生する原因は何ですか?

これはphpやjqueryの質問ではなく、phpmyadminの質問になったことは分かっています。質問はフォーラムのSQLの部分に移動する必要がありますか?

+0

は、あなたがにconsole.log(テキスト) 'それはあなたは' $( "#入力") 'に終了引用符が欠落している –

+2

console''に何を印刷しない 'しようとしている仕事を願っています。 – Barmar

+2

あなたのコードはSQLインジェクションに対して脆弱です。 「PHPでのSQLインジェクションを防ぐにはどうすればよいですか?」(https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – Barmar

答えて

0

私はPHPについて何も知らないし、重要ではないと思う。私はあなたが大部分の権利を持っていると思います。あなたのAjaxリクエストが成功したら、入力フィールドのテキスト値を設定します。

+0

ありがとう、私は実際にそれを持っていた。それがうまくいくかどうかを確認するアラートに変更しました。 – auurk

0

これが実際のコードであると仮定すると、実際にフィールドを参照および更新しないことが原因である可能性があります。

このような何かあなたが必要なものでなければなりません:.val

より

$("#input").val(text.bedrijfsnaam) 
+0

これはすでにコードの一部ですが、何を変更することを提案していますか? –

+1

私の回答を追加するとOPにアラート()が表示されました。いずれにしても、以前はそれを捕まえることができませんでしたが、OPはフィールドを更新する前に "成功"で "JSON.parse()"を使用してサーバーの応答を解析する必要があります。 – jpadd009

+0

@MuhammadOmerAslam ..どこにコードがありますか?私はそれを見つけることはありません。 – SherylHohman

0

$.ajax({ 
 
    url:"php/fetchUserData.php", 
 
    method: "POST", 
 
    data:{uid:uid}, 
 
    dataType:"json", 
 
    success:function(text){ 
 
     $('#input').val(text[0]); 
 
    } 
 

 
});

hmtl多分、より良い作品をあなたのdivのあなたのjqueryの選択に間違っています:"が見つかりませんコード。

は、それが

+0

の場合はエラーコールバックにも行きます。jsonがエンコードした配列を返すと思います。おそらく$( '#button').html [0]); – Robin

+0

してくださいvar_dump($ results); – Robin

関連する問題