我有這樣的代碼,對於迴歸問題阿賈克斯從問題拋SQL的列表中使用SQL和PHP通過AJAX值發送到另一個頁面的過程
<form id="reg-form3">
<ul class="nav nav-list primary push-bottom">
<?
$db['db_host']="localhost";
$db['db_user']="root";
$db['db_pass']="";
$db['db_name']="zadli";
foreach ($db as $key => $value){
define(strtoupper($key), $value);
}
$con=mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if($con){
mysqli_query($con,'SET NAMES "utf8";');
// echo "<h1>we are connected</h1>";
}
else {
die("eroor conection".mysqli_error($con));
}
$query = "SELECT * FROM `training_questions` WHERE category_id=$cat_id ";
$query_quize= mysqli_query($con, $query);
while ($row = mysqli_fetch_assoc($query_quize)) {
$qustio=$row['id'];
$i=$row['id'];
echo $i;
?>
<input name="start_time" type="hidden" id="start_time" value="<?= time() ?>">
<input name="training_id" type="hidden" id="training_id" value="<?= $_GET['cat'] ?>">
<li><input name="btn-save" type="submit" id="btn-save4" value="<?=$qustio ?>">
<?
$queryt = "SELECT * FROM `training_questions` WHERE id=$i ORDER BY id LIMIT 1";
$query_quizet= mysqli_query($con, $queryt);
while ($rowt = mysqli_fetch_assoc($query_quizet)) {
?>
<input name="questions_id" type="hidden" id="questions_id" value="<?= $rowt['id'] ?>">
<?
}
$txt_clean = strip_tags($row['question_text']);
$final_txt = cutText($txt_clean, 90);
echo $final_txt.'...';
?>
</input>
</li>
<? } ?>
</ul>
</form>
下面的代碼問題
名單<script type="text/javascript">
$(document).ready(function(){
//using $.ajax() function
$(document).on('submit', '#reg-form3', function(){
var op1=document.getElementById("btn-save4");
var data = $(this).serialize();
$.ajax({
type: 'POST',
url: 'ajaxquastion3.php',
data: data,
success: function (data) {
$("#btn-save").hide();
$("#btn-save2").show();
$('#reg-form').attr('id', 'reg-form2');
$("#quas").fadeOut(500).hide(function(){
$("#quas").fadeIn(500).show(function(){
$("#quas").html(data);
});
});
}
});
return false;
});
});
</script>
這個代碼通過AJAX發送值到另一個頁面
頁ajaxquastion3.php
<?php
ob_start();
session_start();
require ("../include/db.class.php");
require ("../include/config.php");
require ("../include/function.php");
if($_SESSION['id'] != ''){
$sql_user = "SELECT * FROM `users` WHERE id=:id";
$data_user[id] = $_SESSION['id'];
$result_user = $pdo->pdoGetRow($sql_user, $data_user);
$user_id = $result_user['id'];
$user_paid = $result_user['paid'];
$user_full_name = $result_user['first_name']." ".$result_user['middle_name']." ".$result_user['last_name'];
} else {
header('Location: login.php');
}
$start_time=$_POST['start_time'];
$training_id=$_POST['training_id'];
$questions_id=$_POST['questions_id'];
$question_text=$_POST['question_text'];
$db['db_host']="localhost";
$db['db_user']="root";
$db['db_pass']="";
$db['db_name']="zadli";
foreach ($db as $key => $value){
define(strtoupper($key), $value);
}
$con=mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if($con){
mysqli_query($con,'SET NAMES "utf8";');
// echo "<h1>we are connected</h1>";
}
else {
die("eroor conection".mysqli_error($con));
}
?>
<div class="form-group">
<table border="0">
<tr>
<td colspan="2">Succedd !!!</td>
</tr>
<tr>
<td><strong>First Name:</strong> </td>
<td><?php echo $training_id ?></td>
</tr>
<tr>
<td><strong>Last Name:</strong> </td>
<td><?php echo $questions_id ?></td>
</tr>
<tr>
<td><strong>Last Name:</strong> </td>
<td><?php echo $x ?></td>
</tr>
</table>
<?
$queryq = "SELECT * FROM `training_questions` WHERE id=$questions_id";
$query_chek= mysqli_query($con, $queryq);
while ($row = mysqli_fetch_assoc($query_chek)) {
$test=$row['id'];
echo '<h4>'.$row['question_text'].'</h4>';
?>
<input name="questions_id" type="hidden" id="questions_id" value="<?= $test ?>">
<input name="training_id" type="hidden" id="training_id" value="<?= $training_id ?>">
<div class="radio">
<input name="option" type="radio" class="styled" id="option1" value="1">
<label for="option1">
<strong>أ -</strong>
<?= $row['option1'] ?>
</label>
</div>
<div class="radio">
<input name="option" type="radio" class="styled" id="option2" value="2">
<label for="option2">
<strong>ب -</strong>
<?= $row['option2'] ?>
</label>
</div>
<div class="radio">
<input name="option" type="radio" class="styled" id="option3" value="3">
<label for="option3">
<strong>ج -</strong>
<?= $row['option3'] ?>
</label>
</div>
<div class="radio">
<input name="option" type="radio" class="styled" id="option4" value="4">
<label for="option4">
<strong>د -</strong>
<?= $row['option4'] ?>
</label>
</div>
<? } ?>
</div>
我的問題是,我們我提交表單的問題出現在DB的最後一個問題,任何問題我提交的只是最後一個問題是出現
** ajaxquestions.php ** - '$ queryq =「SELECT * FROM \'training_questions \'WHERE id = $ questions_id 「;'是引用'$ questions_id',它沒有被設置,因此這個查詢將總是返回第一條記錄。另外,像這樣直接傳遞數據給SQL執行是很危險的。您可能想要查看準備好的語句以進行更安全的查詢。 –
我忘了一些代碼,請立即看到並幫助我 –
試試這個。不要用名稱在表單內設置這些''元素 - 嘗試如下所示:https://jsfiddle.net/9rsv2dow/。實質上,你可以包裝它,並在你的ajax請求中發送值'datatopost'。你的問題是你的所有輸入字段都有相同的名字,所以它如何能夠區分它們 - 但是你想用一個一致的名字來提交數據。我的小提琴鏈接向您展示瞭如何修復您的第一塊代碼。 –