2017-02-10 20 views
0

私はAjaxを介して、いくつかのデータを取得したいのですが、結果はAjax経由でMySQLからデータを取得するにはどうしたらいいですか?

スクリプト空であるため、いくつかのミスがなければならない:

<script> 
function showUser(value) { 
    var values = $(this).serialize(); 

    $.ajax({ 
     url: "test.php", 
     data: { 
      id: value 
     }, 
     type: "POST", 
     success: function(data){ 
      $("#result").html(data); 
     } 
    }) 

} 
</script> 

HTML:

<form> 
    <select name="users" onchange="showUser(this.value)"> 
     <option value="">Select a person:</option> 
     <option value="1">Peter Griffin</option> 
     <option value="2">Lois Griffin</option> 
     <option value="3">Joseph Swanson</option> 
     <option value="4">Glenn Quagmire</option> 
    </select> 
</form> 
<br> 
<div id="result"></div> 

test.phpを:

<?php 
$id = @$_POST['id']; 

$pdo = $db->query('SELECT * FROM people WHERE id = "' . $id . '"'); 

while ($row = $pdo->fetch(PDO::FETCH_ASSOC)) { 
    echo $row['id']; 
}  

?> 
+0

'データ:{ ID:値 }、'私はそれが 'データであるべきだと思うが。{ id:値 }、「 –

+0

」が変更されました。ありがとうございます。しかし、まだ結果が得られない – Jarla

+0

私は '警告(データ);'それは空であるので、間違いは 'データ'にある必要があります – Jarla

答えて

1

HTML: -

<select id ="myselect" name="users" onchange="showUser()"> 
     <option value="">Select a person:</option> 
     <option value="1">Peter Griffin</option> 
     <option value="2">Lois Griffin</option> 
     <option value="3">Joseph Swanson</option> 
     <option value="4">Glenn Quagmire</option> 
</select> 
<br> 
<div id="result"></div> 

Javascriptを: -

<script> 
    function showUser() { 
     $.ajax({ 
      url: "test.php", 
      data: { 
       id: $("#myselect option:selected").val(); 
      }, 
      type: "POST", 
      success: function(data){ 
       $("#result").html(data); 
      } 
     }); 
    } 
</script> 

PHP: -

<?php 
    if(isset($_POST['id'])){ 
     $id = $_POST['id']; 

     // i don't know from where $db is coming so check yourself 

     $pdo = $db->query('SELECT * FROM people WHERE id = "'.$id.'" LIMIT 1'); 
     while ($row = $pdo->fetch(PDO::FETCH_ASSOC)) { 
      echo $row['id']; 
     } 
    }else{ 
     echo "Please select value from select box"; 
    }        
    ?> 

注: -

一方、prepared statementsについては、SQL Injectionを防ぐために使用してください。おかげ

1

あなたはjqueryのを使用したくない場合は、あなたがこのような何か行うことができます: -

var http = new XMLHttpRequest(); 
var url = "****Some URL (php etc to process the sql data)******"; 
var p = hex_sha512(userPass.value); 
var params = "email="+userEmail.value+"&p="+p+"&adminStat=true"; 

http.open("POST", url, true); 
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
http.send(params); 

http.onreadystatechange = function() { 
    if (http.readyState == 4) { 
     //Todo 
     // check addition stat and go to the destination page 
     if (http.responseText == "success") { 
      window.location = "*****Destination URL********"; 
     } else { 
      alert("error"); 
     } 
    } 
}; 
関連する問題