Je veux sélectionner les données de ma base de données en utilisant la fonction d'appel PHP et ajax. Dans la fonction select, j'utilise $ _POST à partir d'un textbox
. J'ai fait une fonction d'appel PHP et ajax sur ma page mais quelque chose ne va pas. J'utilise isset[]
pour vérifier les données $_POST
que je reçois de mon textbox
. J'utilise une condition if
là - lorsque le $_POST
est vide, il sélectionne toutes les données sans une clause where, et quand un $_POST
a une valeur, il va sélectionner les données avec une clause where.
Le problème ici est que lorsque j'utilise des données dans mon textbox
pour rendre une chaîne à mon PHP $_POST
, la condition else sur mon PHP ne s'exécute pas.
Ceci est mon code que j'utilise:
JavaScript/JQuery:
$(document).ready(function(e) {
var data = $("#report_all").serialize();
$('#all_report thead').empty();
$('#all_report tbody').empty();
$.ajax({
data: data,
type: "Post",
url: "../php/report/report_all_wjm.php",
success: function(data){
var list = JSON.parse(data);
var th = "";
th += "<th>"+"<center>"+'No'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Storage Location'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Kode Material'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Nama Material'+"</center>"+"</th>";
th += "<th>"+"<center>"+'No.Polisi'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Id Identifier'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Date'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Netto'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Uses'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Unit'+"</center>"+"</th>";
th += "<th>"+"<center>"+'Payroll'+"</center>"+"</th>";
th += "</th>";
$("#all_report thead").append(th);
for(var i = 0; i < list.length; i++){
var tr = "<tr>";
tr += "<td>" +(i+1)+"</td>";
tr += "<td>" +list[i]['sloc']+"</td>";
tr += "<td>" +list[i]['kode']+"</td>";
tr += "<td>" +list[i]['nama']+"</td>";
tr += "<td>" +list[i]['no_pol']+"</td>";
tr += "<td>" +list[i]['id']+"</td>";
tr += "<td>" +list[i]['date']+"</td>";
tr += "<td>" +list[i]['netto']+"</td>";
tr += "<td>" +list[i]['uses']+"</td>";
tr += "<td>" +list[i]['unit']+"</td>";
tr += "<td>" +list[i]['payroll']+"</td>";
tr += "</tr>";
$("#all_report tbody").append(tr);
$("#all_report").show();
}
return false;
}
});
});
PHP:
<?php
include("../../Connections/koneksi.php");
$date_awal=$_POST['date_start'];
$date_akhir=$_POST['date_end'];
$kode=$_POST['kode_mat'];
$kode1=$_POST['kode_mat1'];
$sloc=$_POST['s_loc'];
$sloc1=$_POST['s_loc1'];
$type=$_POST['get_type'];
//Display all data
if (isset($date_awal) == "" || isset($date_akhir) == "" || isset($sloc)== "" || isset($sloc1)== "" || isset($kode)== "" || isset($kode1)== "" || isset($type)== ""){
$sql = "SELECT * FROM wjm ORDER by no asc";
$query = mysqli_query($db,$sql);
$rows = array();
while($tmp= mysqli_fetch_assoc($query)) {
$rows[] = $tmp;
}
}
//Display all data by one date
else {
// Data for Titik1
$sql = "SELECT * FROM wjm WHERE date='$date_awal' order by kode asc ";
$query = mysqli_query($db,$sql);
$rows = array();
while($tmp= mysqli_fetch_assoc($query)) {
$rows[] = $tmp;
}
echo json_encode($rows);
}
mysqli_close($db);
?>
Votre code est vulnérable aux attaques [** injection SQL **] (https://en.wikipedia.org/wiki/SQL_injection). Vous devez utiliser des instructions préparées avec des paramètres liés, via [** mysqli **] (https://secure.php.net/manual/fr/mysqli.prepare.php) ou [** PDO **] (https : //secure.php.net/manual/fr/pdo.prepared-statements.php) pilotes. [** Cet article **] (https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) a de bons exemples. –
@AlexHowansky hmmm .. laissez-moi demander quelque chose. est une syntaxe similaire à ce '$ stmt-> execute' je ne sais pas comment utiliser' -> 'cette syntaxe.et j'ai essayé d'utiliser une syntaxe avec '->' et j'y ai trouvé une erreur –
Je trouve vraiment étrange que les débutants se bloque sur les objets PHP ou PHP OOP, mais ils sont heureux de l'utiliser toute la journée en javascript. –