我有一個php頁面,用戶在文本字段中鍵入特定的id號並單擊「SEARCH」按鈕。點擊「搜索」後,一個php腳本運行連接到MySQL數據庫表「xxx」,並獲取與用戶輸入的id號相匹配的行ID。 SELECT語句爲已識別的行抓取數據庫值:「productionstage」和「floornotes」。獲取選擇菜單,以動態顯示基於MySQL的特定選擇選項選擇結果
我需要做的就是把這些結果,並顯示他們回來我的窗體頁上:
一個選擇菜單需要動態顯示對應於該行的「productionstage」值,然後一個textarea需要的選項顯示「floornotes」的值。
我的代碼:
HTML:
<form id="workorderMovement" name='workorderMovement_form' action="workordermovementGET.php" method="post">
<fieldset id="userid">
<span>Welcome <?php echo $user ?> </span>
</fieldset>
<fieldset id="sgnum">
<fieldset id="fieldset" style="text-align: center;">
<span>Please enter the SG Number</span>
</fieldset>
<input type="text" name="sgnumber" id="sgnumber"> <input type="button" name="searchButton" id="searchButton" value="SEARCH">
</fieldset>
<br/>
<br/>
<fieldset id="stageSelectField">
<fieldset id="fieldset" style="text-align: center;">
<span>Please select the Stage Completed</span>
</fieldset>
<select name="stageSelect" id="stageSelect">
<option value="Please Select">Please Select</option>
<option value="Film Done">Film Done</option>
<option value="Staged Done">Staged Done</option>
<option value="Cleanroom Done">Cleanroom Done</option>
<option value="GB2 Done">GB2 Done</option>
<option value="Bagging Done">Bagging Done</option>
<option value="Inspection Done">Inspection Done</option>
<option value="LC Done">LC Inspection Done</option>
<option value="IGU Done">IGU Done</option>
</select>
</fieldset>
<br/>
<br/>
<fieldset id="floorNotesField">
<fieldset id="fieldset" style="text-align: center;">
<span>Please enter any new work order notes</span>
</fieldset>
<textarea type="text" name="floorNotes" id="floorNotes" class="floorNotesText"></textarea>
</fieldset>
<br/>
<br/>
<br/>
</form> <!-- End Work Order Movement Form -->
<fieldset id="doneButtonField">
<input type="button" name="doneButton" id="doneButton" value="DONE">
</fieldset>
MY AJAX:
j("#searchButton").click(function(){
//send Workorder Movement Data values to php using ajax.
var sgnumber = j('#sgnumber').val();
j.ajax ({
method: 'POST',
url: "workordermovementGET.php",
data: {sgNumber: sgnumber},
dataType: 'json',
success: function(data){
if(data.status){
j("select#stageSelect option").filter(function() {
return j(this).val() == data.productionstage;
}).prop('selected', true);
j("textarea#floorNotes").val(data.floornotes);
}
}
});
});
我的PHP:
include('inc.php');
//Get Table Options.
if (isset($_POST['sgNumber'])) {
$sgNumber = $_POST['sgNumber'];
//connect to the database
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if(mysqli_connect_errno()) {
printf('Could not connect: ' . mysqli_connect_error());
exit();
}
$conn->select_db($dbname);
if(! $conn->select_db($dbname)) {
echo 'Could not select database. '.'<BR>';
}
$sql= "SELECT productionstage, floornotes FROM invoices WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('i', $sgNumber);
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows == 1) {
$stmt->bind_result($productionstage, $floornotes);
$stmt->fetch();
echo json_encode(array('status' => true, 'productionstage' => $productionstage, 'floornotes' => $floornotes));
} else {
echo json_encode(array('status' => false));
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Free the result variable.
$result->free();
//Close the Database connection.
$conn->close();
}//End If statement
?>
我需要知道如何正確地張貼的一部分我的ajax結果作爲選擇選項(th e數據庫值將匹配其中一個預定義的選項),然後取出其餘結果並顯示在textarea中。另外,如果我可以動態地做到這一點,那將是完美的。
謝謝!
您的代碼中有一個SQL注入漏洞! – Hut8
是的,我知道。我正在同時研究如何避免這種情況...任何有關已知鏈接/教程的建議都非常感謝。謝謝! – rdimouro