2017-04-21 14 views
0

データベースから選択リストを取り込んだフォームがあります。クエリが実行されると、成功メッセージが返されますが、データベースは更新されません。ここでPHP MySQL UPDATEクエリがテキストボックスから値を転記しない

は形式です:

<form id="formPrice"> 
<?php 
$conn = new mysqli('localhost', 'something', 'something', 'something') 
or die ('Cannot connect to db'); 
$result = $conn->query("SELECT PlotNumber FROM Developments WHERE Development = 'GREENGRAVES' AND Price = 'BOOKED'"); 
echo "<select name='plot_update'>"; 
while ($row = $result->fetch_assoc()) { 
     echo "<option value=\"Plot\">" . $row['PlotNumber'] . " 
</option>"; 
} 
echo "</select>"; 
?> 
<input name="price" type="text" id="price"> 
<input name="update" type="submit" class="update_price"> 
</form> 

ここでAJAXリクエストさ:

$('.update_price').click(function() { 
var FormData = $('form').serialize(); 
$.ajax({ 
    type: "POST", 
    url: '../php/update_price.php', 
    data : FormData, 
    success:function(html){ 
     document.getElementById("result_two").innerHTML=html; 
    } 
}); 
return false; 
}); 

ここではでは、PHP

$conn = new mysqli($servername, $username, $password, $dbname); 

if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 
$price = $_POST['price']; 
$plot = $_POST['plot']; 
$sql = "UPDATE Developments SET Price = '".$price."' WHERE PlotNumber = '".$plot."' "; 

if ($conn->query($sql) === TRUE) { 
echo "Record updated successfully"; 
} else { 
echo "Error updating record: " . $conn->error; 
} 

$conn->close(); 

ページが表示され、 "正常に更新されたレコード" であります結果div。ただし、データベースエントリは変更されません。なぜどんなアイデア?私は困惑している。

+0

ブラウザのコンソールから、すべてのデータがサーバー側に正しく送信され、PHPスクリプトで$ _POST値が取得されていることを確認しましたか? – mi6crazyheart

+0

'document.getElementById(" result_two ")' htmlのidはどこですか?それは無関係ですか? 'plot'のPOST配列がフォーム要素の名前と一致しません。エラー報告はあなたにそれについて語ったでしょう。未定義のインデックス。 –

+0

result_twoは成功/エラーメッセージが表示されるdivの下にあります。どのようにフォームは一致しませんか? '価格'要素は '価格'入力から、選択からプロットする必要があります。 – spbrad

答えて

0

エラーは、フロントエンドの形で、この行でように見えた:それは働いた

echo "<option>" . $row['PlotNumber'] . "</option>"; 

echo "<option value=\"Plot\">" . $row['PlotNumber'] . "</option>"; 

Iに変更すると!

0

PHPスクリプトの下のフォームフィールドに問題があります:

変更以下に、あなたのPHPスクリプト:

<form id="formPrice"> 
<?php 
$conn = new mysqli('localhost', 'something', 'something', 'something') 
or die ('Cannot connect to db'); 
$result = $conn->query("SELECT PlotNumber FROM Developments WHERE Development = 'GREENGRAVES' AND Price = 'BOOKED'"); 
echo "<select name='plot'>"; 
while ($row = $result->fetch_assoc()) { 
    echo "<option value=" . $row['PlotNumber'] . ">" . $row['PlotNumber'] . "</option>"; 
} 
echo "</select>"; 
?> 
<input name="price" type="text" id="price"> 
<input name="update" type="button" class="update_price"> 
常に

を確認してください - 選択オプションの値は実際の値を持っている必要がありますレコードフィールドと選択フィールドのフィールド名はフォームフィールドになります。

関連する問題