实际上,我只是一个新手程序员,我为我的程序制作了自己的更新javascript函数,但遗憾的是代码没有更新..任何人都可以帮助我协助我的代码工作吗?请。
我想要做的是,如果我更改文本框中的值并单击更新,它将更新。
脚本代码:
<script type="text/javascript">
$(document).ready(function () {
$('#updates').click(function (e) {
e.preventDefault();
var $id1 = $('#id1').val();
var $id2 = $('#id2').val();
var $name1 = $('#name1').val();
var $name2 = $('#name2').val();
var $optA1 = $('#optA1').val();
var $optA2 = $('#optA2').val();
var $optB1 = $('#optB1').val();
var $optB2 = $('#optB2').val();
var $other_qual1 = $('#other_qual1').val();
var $other_qual2 = $('#other_qual2').val();
var $interview1 = $('#interview1').val();
var $interview2 = $('#interview2').val();
var $total1 = $('#total1').val();
var $total2 = $('#total2').val();
$.ajax({
type: "POST",
url: "update.php",
data: {
id1_text: $id1,
id2_text: $id2,
name1_text: $name1,
name2_text: $name2,
optA1_text: $optA1,
optA2_text: $optA2,
optB1_text: $optB1,
optB2_text: $optB2,
other_qual1_text: $other_qual1,
other_qual2_text: $other_qual2,
interview1_text: $interview1,
interview2_text: $interview2,
total1_text: $total1,
total2_text: $total2
},
cache: false,
success: function (data) {
alert('data has been updated!');
}
});
});
});
</script>
update.php页面:
<?php
mysql_connect("localhost", "root", "") or die("cant connect to database!");
mysql_select_db("test") or die("cant find database!");
$id1 = @$_POST['id1_text'];
$id2 = @$_POST['id2_text'];
$name1 = @$_POST['name1_text'];
$name2 = @$_POST['name2_text'];
$optA1 = @$_POST['optA1_text'];
$optA2 = @$_POST['optA2_text'];
$optB1 = @$_POST['optB1_text'];
$optB2 = @$_POST['optB2_text'];
$other_qual1 = @$_POST['other_qual1_text'];
$other_qual2 = @$_POST['other_qual2_text'];
$interview1 = @$_POST['interview1_text'];
$interview2 = @$_POST['interview2_text'];
$total1 = @$_POST['total1_text'];
$total2 = @$_POST['total2_text'];
$query1 = mysql_query("UPDATE score SET name=$name1, score1=$optA1, score2=$optB1, other_qual=$other_qual1, interview=$interview1, total=$total1 WHERE id=$id1");
$resource1 = mysql_query($query1) or die(mysql_error());
$query2 = mysql_query("UPDATE score SET name=$name2, score1=$optA2, score2=optB2, other_qual=$other_qual2, interview=$interview2, total=$total2 WHERE id=$id2");
$resource2 = mysql_query($query2) or die(mysql_error());
?>
HTML:
<form>
Search batchcode: <input id="query" name="search" type="text"><input id="send_search_form" type="button" value="Go" /><br>
Batch #: <label id="batchcode" class="empty_batchcode"></label>
<table>
<tr>
<td>ID:<br>
<input readonly id="id1" class="search_form_input" name="id1" type="text"><br>
<input readonly id="id2" class="search_form_input" name="id2" type="text"><br></td>
<td>Name:<br>
<input id="name1" class="search_form_input" name="name1" type="text"><br>
<input id="name2" class="search_form_input" name="name2" type="text"><br></td>
<td>Score 1:<br>
<input id="optA1" class="search_form_input" name="optA1" type="text"><br>
<input id="optA2" class="search_form_input" name="optA2" type="text"><br></td>
<td>Score 2:<br>
<input id="optB1" class="search_form_input" name="optB1" type="text"><br>
<input id="optB2" class="search_form_input" name="optB2" type="text"><br></td>
<td>Other Qualification:<br>
<input id="other_qual1" class="search_form_input" name="other_qual1" type="text"><br>
<input id="other_qual2" class="search_form_input" name="other_qual2" type=
"text"><br></td>
<td>Interview:<br>
<input id="interview1" class="search_form_input" name="interview1" type="text"><br>
<input id="interview2" class="search_form_input" name="interview2" type="text"><br></td>
<td>Total:<br>
<input id="total1" class="search_form_input" name="total1" type="text"><br>
<input id="total2" class="search_form_input" name="total2" type="text"><br></td>
</tr>
</table>
<input type="button" value="update" id="updates" />
</form>
答案 0 :(得分:2)
您在SQL查询中的名称周围缺少引号。
$query1 = mysql_query("UPDATE score SET name='$name1', score1=$optA1, score2=$optB1, other_qual=$other_qual1, interview=$interview1, total=$total1 WHERE id=$id1");
如果你使用PDO或mysqli会更好,所以你可以使用参数化查询而不是字符串替换。您的代码存在SQL注入的严重危险。
答案 1 :(得分:1)
这些都不会起作用。
$resource1 = mysql_query($query1) or die(mysql_error());
$resource2 = mysql_query($query2) or die(mysql_error());
因为引用的$query1
和$query2
是实际查询。您需要将它们更改为简单的字符串。
更正了PHP:
$query1 = "UPDATE score SET name=$name1, score1=$optA1, score2=$optB1, other_qual=$other_qual1, interview=$interview1, total=$total1 WHERE id=$id1";
$resource1 = mysql_query($query1) or die(mysql_error());
$query2 = "UPDATE score SET name=$name2, score1=$optA2, score2=optB2, other_qual=$other_qual2, interview=$interview2, total=$total2 WHERE id=$id2";
$resource2 = mysql_query($query2) or die(mysql_error());
甚至更好,更新为更新的内容,如下所示:
$mysqli = new mysqli("localhost", "root", "", "test");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (Error code: " . $mysqli->connect_errno . ")... " . $mysqli->connect_error;
}
$query1 = "UPDATE score SET name='$name1', score1='$optA1', score2='$optB1', other_qual='$other_qual1', interview='$interview1', total='$total1' WHERE id='$id1'";
$resource1 = $mysqli->query($query1) or die(mysqli_error($mysqli));
$query2 = "UPDATE score SET name='$name2', score1='$optA2', score2='$optB2', other_qual='$other_qual2', interview='$interview2', total='$total2' WHERE id='$id2'";
$resource2 = $mysqli->query($query2) or die(mysqli_error($mysqli));
mysqli_close($mysqli);
@Barmar也有一点 - 如果有空格或其他可能导致语法错误的字符,你需要围绕这些变量引用。