0
我有一個有多個比賽的小livescore頁面,每個比賽在數據庫中有唯一的id。我使用AJAX將數據提交到數據庫,以避免頁面刷新。問題在於AJAX無法識別我提交(更新)數據(分數)的匹配,並始終從第一個表(匹配)發送標識。如果我使用PHP在同一個文件中的代碼工作正常,但頁面需要重裝:阿賈克斯沒有得到唯一的ID
$queryAPTChallenge = mysqli_query($server, "SELECT * FROM meciurilive WHERE Turneu='APT Challenge'");
while ($row = mysqli_fetch_array($queryAPTChallenge)) {
$id=$row['id'];
$submitj1='submitj1'.$id;
$jucator1=$row['Jucator1'];
$jucator2=$row['Jucator2'];
$ziua=$row['Ziua'];
$ora=$row['Ora'];
$set1j1=$row['Set1j1'];
$set1j2=$row['Set1j2'];
$set2j1=$row['Set2j1'];
$set2j2=$row['Set2j2'];
$set3j1=$row['Set3j1'];
$set3j2=$row['Set3j2'];
echo "<table style='margin-top:50px;margin-left:65px;border-collapse:collapse;display:inline-block;'>
<tbody><tr>
<td></td>
<td></td>
<td colspan='3'>
<div style='margin-bottom: 0;'>
<input type='hidden' id='idmeci' value=$id>
<input style='font-size:30px; width:100%;' type='submit' id='submitj1' value='GAME'>
</div>
</td>
</tr>
<tr>
<td style='text-align:center; width: 60px;'>
<div style='margin-bottom: 0;'>
<input type='hidden' id='idmeci' value=$id>
<input type='submit' name='undoj1' value='UNDO'>
</div>
</td>
<td style='text-align: left;font-family: arial, sans-serif;font-size: 17px;text-indent: 10px;padding-left: 0px;padding-right: 0px;padding-top: 5px;padding-bottom: 5px;line-height: 1.5;background: radial-gradient(#E6E6E6, #BABABA 100%);color: black;font-weight: bold;background-size: 100% 100%;border:3px solid black;width:185px'>$jucator1</td>
<td style='width: 60px;text-align:center;font-family:arial,sans-serif;font-size:19px;font-weight:bold;border:3px solid black;background:#9f3210;color:white'><div id='showj1s1'>$set1j1</div></td>
<td style='width: 60px;text-align:center;font-family:arial,sans-serif;font-size:19px;font-weight:bold;border:3px solid black;background:#9f3210;color:white'><div id='showj1s2'>$set2j1</div></td>
<td style='width: 60px;text-align:center;font-family:arial,sans-serif;font-size:19px;font-weight:bold;border:3px solid black;background:#9f3210;color:white'><div id='showj1s3'>$set3j1</div></td>
</tr>
<tr>
<td style='text-align:center; width: 60px;'>
<div style='margin-bottom: 0;'>
<input type='hidden' id='idmeci' value=$id>
<input type='submit' name='undoj2' value='UNDO'>
</div>
</td>
<td style='text-align: left;font-family: arial, sans-serif;font-size: 17px;text-indent: 10px;padding-left: 0px;padding-right: 0px;padding-top: 5px;padding-bottom: 5px;line-height: 1.5;background: radial-gradient(#E6E6E6, #BABABA 100%);color: black;font-weight: bold;background-size: 100% 100%;border:3px solid black;width:185px'>$jucator2</td>
<td style='width: 60px;text-align:center;font-family:arial,sans-serif;font-size:19px;font-weight:bold;border:3px solid black;background:#9f3210;color:white'><div id='showj2s1'>$set1j2</div></td>
<td style='width: 60px;text-align:center;font-family:arial,sans-serif;font-size:19px;font-weight:bold;border:3px solid black;background:#9f3210;color:white'><div id='showj2s2'>$set2j2</div></td>
<td style='width: 60px;text-align:center;font-family:arial,sans-serif;font-size:19px;font-weight:bold;border:3px solid black;background:#9f3210;color:white'><div id='showj2s3'>$set3j2</div></td>
</tr>
<tr>
<td></td>
<td style='width: 60px;'>
<div style='margin-bottom: 0;'>
<input type='hidden' id='idmeci' value=$id>
<input type='submit' name='sterg' value='STERG'>
</div>
</td>
<td colspan='3'>
<div style='margin-bottom: 0;'>
<input type='hidden' id='idmeci' value=$id>
<input style='font-size:30px; width:100%;' type='submit' id='submitj2' value='GAME'>
</div>
</td>
<td></td>
</tr>
</tbody></table>";
}
AJAX:
$(document).ready(
$('body').on('click' , '#submitj1', function() {
var id = $('input#idmeci').val();
$.ajax({
url: "submit.php",
type: "POST",
cache: false,
data: {
idd: id
},
succes: function(){
alert('succes');
}
})
});
});
submit.php
:
$server = mysqli_connect("localhost", "root", "root");
$db = mysqli_select_db($server, "tenisapt");
$idmeci = $_POST['idd'];
$sql = "SELECT Set1j1,Set1j2,Set2j1,Set2j2,Set3j1,Set3j2 FROM meciurilive WHERE id=$idmeci";
$result = mysqli_query($server, $sql);
$row = mysqli_fetch_assoc($result);
$set1j1 = $row['Set1j1'];
$set1j2 = $row['Set1j2'];
$set2j1 = $row['Set2j1'];
$set2j2 = $row['Set2j2'];
$set3j1 = $row['Set3j1'];
$set3j2 = $row['Set3j2'];
if ((($set1j1<6) && ($set1j2<5)) || (($set1j1<5) && ($set1j2<6)) || (($set1j1==5) && ($set1j2==5)) || (($set1j1==6) && ($set1j2==5)) || (($set1j1==5) && ($set1j2==6)) || (($set1j1==6) && ($set1j2==6))){
$actualizare = "UPDATE meciurilive SET Set1j1 = Set1j1 + 1 WHERE id=$idmeci";
mysqli_query($server, $actualizare);
}
else if ((($set2j1<6) && ($set2j2<5)) || (($set2j1<5) && ($set2j2<6)) || (($set2j1==5) && ($set2j2==5)) || (($set2j1==6) && ($set2j2==5)) || (($set2j1==5) && ($set2j2==6)) || (($set2j1==6) && ($set2j2==6))){
$actualizare = "UPDATE meciurilive SET Set2j1 = Set2j1 + 1 WHERE id=$idmeci";
mysqli_query($server, $actualizare);
}
else if ((($set3j1<6) && ($set3j2<5)) || (($set3j1<5) && ($set3j2<6)) || (($set3j1==5) && ($set3j2==5)) || (($set3j1==6) && ($set3j2==5)) || (($set3j1==5) && ($set3j2==6)) || (($set3j1==6) && ($set3j2==6))){
$actualizare = "UPDATE meciurilive SET Set3j1 = Set3j1 + 1 WHERE id=$idmeci";
mysqli_query($server, $actualizare);
}
[Little Bobby](http://bobby-tables.com/)說*** [您的腳本存在SQL注入攻擊風險。](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql -injection-in-php)***瞭解[MySQLi](http:// http:// http://my.wikipedia.org/wiki/Prepared_statement) php.net/manual/en/mysqli.quickstart.prepared-statements.php)。即使[轉義字符串](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)是不安全的! [不相信嗎?](http://stackoverflow.com/q/38297105/1011527) –
請留意代碼格式化並儘量避免使用水平滾動條。 – reporter