大家好我今天尝试使用AJAX将参数发送到PHP
GET method
,无论如何一切都运行良好,除了INSERT query
没有被执行,所以这里是我的DATA
Database Tables
的表格
<?php
if (isset($_GET['engins']) && !empty($_GET['engins'])) {
# code...
$engin=$_GET['engins'];
$query="SELECT * FROM `engin` WHERE `genre_eng` LIKE '".$engin."'";
if ($result=mysql_query($query)) {
# code...
?>
<center>
<table border="3" id="myTable">
<thead>
<tr>
<th>Matricules des Engins</th>
<th>Numéro des Engins</th>
<th>Marque des Engins</th>
<th>Type des Engins</th>
<th>Genre des Engins</th>
<th>Modele des Engins</th>
<th>Puissance des Engins</th>
<th>P.T.C.A des Engins</th>
<th>Poids vide</th>
<th>Gestion</th>
</tr>
</thead>
<tbody id="p_scents">
<?php
while ($row=mysql_fetch_assoc($result)) :
?>
<tr>
<td><?= $row['mat_eng']; ?></td>
<td><?= $row['num_serie']; ?></td>
<td><?= $row['marque_eng']; ?></td>
<td><?= $row['type_eng']; ?></td>
<td><?= $row['genre_eng']; ?></td>
<td><?= $row['modele_eng']; ?></td>
<td><?= $row['puissance_eng']; ?></td>
<td><?= $row['p.t..a.c']; ?></td>
<td><?= $row['poids vide']; ?></td>
<td><a href="delete.php?del=true&engins=<?= $row['genre_eng']; ?>" title="delete">Supprimer</a></td>
</tr>
<?php endwhile; ?>
<tr>
<td><input type="text" name="mat_eng" value="" placeholder="Matricules des Engins"></td>
<td><input type="text" name="num_serie" value="" placeholder="Numéro des Engins"></td>
<td><input type="text" name="marque_eng" value="" placeholder="Marque des Engins"></td>
<td><input type="text" name="type_eng" value="" placeholder="Type des Engins"></td>
<td><input type="text" name="genre_eng" value="" placeholder="Genre des Engins"></td>
<td><input type="text" name="modele_eng" value="" placeholder="Modele des Engins"></td>
<td><input type="text" name="puissance_eng" value="" placeholder="Puissance des Engins"></td>
<td><input type="text" name="p.t.a.c" value="" placeholder="P.T.C.A des Engins"></td>
<td><input type="text" name="poids_vide" value="" placeholder="Poids vide"></td>
<td><button title="add" onclick="ajax()">Ajouter</button></td>
</tr>
</tbody>
</table>
</center>
<?php }} ?>
这是我的正常Ajax script
:
<script language="javascript">
function getXHR() {
var resultat=null;
try {resultat= new XMLHttpRequest();}
catch (Error)
{
try {resultat= new ActiveXObject("Msxml2.XMLHTTP");}
catch (Error)
{
try {resultat= new ActiveXObject("Microsoft.XMLHTTP");}
catch (Error) {resultat= null;}
}
}
return resultat;
}
function ajax(){
var mat_eng=document.getElementsByTagName('mat_eng').value;
var num_serie=document.getElementsByTagName('num_serie').value;
var marque_eng=document.getElementsByTagName('marque_eng').value;
var type_eng=document.getElementsByTagName('type_eng').value;
var genre_eng=document.getElementsByTagName('genre_eng').value;
var modele_eng=document.getElementsByTagName('modele_eng').value;
var puissance_eng=document.getElementsByTagName('puissance_eng').value;
var ptac=document.getElementsByTagName('ptac').value;
var poids_vide=document.getElementsByTagName('poids_vide').value;
var obXHR = new getXHR();
function traitement(){
if(obXHR.readyState==4){
var result = obXHR.responseText;
document.getElementById('p_scents').innerHTML = result;
}
}
obXHR.onreadystatechange=traitement;
obXHR.open("get",
"add.php?mat_eng="+mat_eng+"&num_serie="+num_serie+"&marque_eng="+marque_eng+"&type_eng="+type_eng+"&genre_eng="+genre_eng+"&modele_eng="+modele_eng+"&puissance_eng="+puissance_eng+"&ptac="+ptac+"&poids="+poids_vide
,true);
obXHR.send(null);
}
</script>
另一个Javascript function()
我认为即使无法在onClick() method
下运行也会导致错误:
<script type="text/javascript">
function subthis(){
document.getElementById('myForm').submit();
}
</script>
任何帮助都被高兴地接受,非常感谢!
答案 0 :(得分:1)
首先,我想说有适当的库来处理HTTPRequests。
查看jQuery | $ .ajax函数。
这不仅减少了您编码的行数,还有助于提高可读性。
正如Quentin所说,你也容易受到SQL注入攻击。使用准备好的陈述。
$.ajax({
type: "GET", // GET, POST , PUT, PATCH
url: "http://example.com/file.php",
data: {engins:"exampleengine"},
success: function(data) { // Data will be your HTML code returned from the PHP script.
// Process data object
}
当给出engins的正确信息时,这段代码应该处理对服务器的请求。
成功处理后,数据对象将填充HTML代码。打开firefox或chrome的控制台,检查请求是否实际发送。
下一步是将HTML代码添加到页面正文中。
function succes(data){
$('body').append(data); // If data is HTML code it will be appended to the DOM tree
}
答案 1 :(得分:0)
您正在使用getElementsByTagName()
设置参数值,因为它返回的值表不是单个值。
您可能需要将代码更新为:
var mat_eng=document.getElementsByTagName('mat_eng')[0].value;
// ...