使用ajax更新文本框中的值

时间:2014-02-03 05:14:20

标签: javascript php html ajax json

实际上,我只是一个新手程序员,我为我的程序制作了自己的更新javascript函数,但遗憾的是代码没有更新..任何人都可以帮助我协助我的代码工作吗?请。

我想要做的是,如果我更改文本框中的值并单击更新,它将更新。

enter image description here

脚本代码:

<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>

2 个答案:

答案 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也有一点 - 如果有空格或其他可能导致语法错误的字符,你需要围绕这些变量引用。