使用jquery和ajax php传递变量

时间:2013-03-01 13:45:36

标签: php ajax jquery

我正在关注本教程,所以我的问题是: 我这里有这个代码,这是一些表格。

<tr id="<?php echo $id; ?>" class="edit_tr">

<td class="edit_td">
<span id="first_<?php echo $id; ?>" class="text"><?php echo $kodi; ?></span>
<input type="text" value="<?php echo $kodi; ?>" class="editbox" id="first_input_<?php echo $id; ?>" /&gt;
</td>

<td class="edit_td">
<span id="last_<?php echo $id; ?>" class="text"><?php echo $vlera; ?></span>
<input type="text" value="<?php echo $vlera; ?>" class="editbox" id="last_input_<?php echo $id; ?>"/>
</td>

</tr>

现在,这是脚本:

<script type="text/javascript">
$(document).ready(function()
{
$(".edit_tr").click(function()
{
var ID=$(this).attr('id');
$("#first_"+ID).hide();
$("#last_"+ID).hide();
$("#first_input_"+ID).show();
$("#last_input_"+ID).show();
}).change(function()
{
var ID=$(this).attr('id');
var kodi=$("#first_input_"+ID).val();
var vlera=$("#last_input_"+ID).val();
var dataString = 'id='+ ID +'&kodi='+kodi+'&vlera='+vlera;
$("#first_"+ID).html('<img src="load.gif" />'); // Loading image

if(first.length>0&& last.length>0)
{

$.ajax({
type: "POST",
url: "table_edit_ajax.php",
data: dataString,
cache: false,
success: function(html)
{
$("#first_"+ID).html(first);
$("#last_"+ID).html(last);

我没有正确地传递变量。因为它不会保存它们,查询不会超出。 感谢

2 个答案:

答案 0 :(得分:0)

jQuery在ajax中传递表单字段的最简单方法是使用serialize

data: $("form").serialize();

另一个问题是您使用的是两个变量firstlast,但您没有在任何地方定义它们。

答案 1 :(得分:0)

试试这段代码:

$(function() { // This makes the same than $(document).ready();
    $(".edit_tr").each(function() { // Instead of assign the click event, we loop through each element
        var $element = $(this);
        var id = this.id;
        var $first = $('#first_' + id);
        var $last = $('#last_' + id);
        var $firstInput = $('#first_input_' + id);
        var $lastInput = $('#last_input_' + id);
        $element.click(function() {
            $first.hide();$last.hide();
            $firstInput.show();$lastInput.show();
        }).change(function() {
            $first.html('<img src="load.gif" />');
            // Here you have an if, but those elements are not defined in the script...
            // if (first.length > 0 && last.length > 0) {
            $.post("table_edit_ajax.php", {
                id : id,
                kodi : $firstInput.val(),
                vlera : $lastInput.val()
            }, function(html) {
                // Here again the two vars not defined
                //$first.html(first);
                //$last.html(last);
            });
            // }
        });
    });
});