現在セレクトボックスで選択した値にあったデータをデータベースから取得し
テキストボックスに反映できるようにしたく、ajaxを使って非同期で取得しようとしているのですが
条件に合ったデータ全て取得したいのに一行しか取得ができず困っております。
phpmyAdminで実行したところ、そこでは正しく抽出できるのですが
phpから取得しようとするとどうしても一行しかとってきてくれません…。
sqlを見直したりしましたがわからず、アドバイスやヒントなどいただけたら幸いです。
| id | no | name | purpose | price |
|m_saitou| 1 |てすと | 出勤 | 200 |
|m_saitou| 2 |てすと | 面談 | 300 |
| s_ueda | 1 | test | 出勤 | 250 |
| s_ueda | 2 | test | 現場 | 300 |
|m_saitou| 1 | テスト| 現場 | 400 |
php
1$db = new database(); 2 3if(isset($_POST["staff"]) && isset($_POST["select"])){ 4 $Id = urldecode($_POST["staff"]); 5 $name = urldecode($_POST["select"]); 6 7 $sql = "SELECT purpose,price FROM pattern WHERE id = '".$Id."' AND name = '".$name."' AND ORDER BY no ASC"; 8 $res = $db->query($sql); 9 $row = mysqli_fetch_array($res); 10 11 while($row = mysqli_fetch_array($res)){ 12 $pattern_data["purpose"] = $row["purpose"]; 13 $pattern_data["price"] = $row["price"]; 14 } 15 16 $jsondata = json_encode($pattern_data, JSON_UNESCAPED_UNICODE); 17 echo $jsondata; 18 }
javascript
1function patternInput(staffId){ 2 3var selectNm = document.getElementById("patternSelect").value; 4 5alert(staffId); 6$.ajax({ 7 type: 'POST', 8 url:'ajax.php', 9 data:{ "select":selectNm, 10 "staff":staffId } 11}).done(function(data) { 12 //通信が成功した時の処理 13 document.getElementById("dekita").value = data; 14}).fail(function(jqXHR,textStatus, errorThrown) { 15 //通信が失敗した時の処理 16 console.log("NG:" + textStatus.status);xhr.statusText 17 console.log("NG:" +errorThrown.statusText) 18 document.getElementById("dekita").value = jqXHR.status; 19}); 20}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/27 05:01
退会済みユーザー
2020/01/27 05:07
2020/01/27 05:12