2012-11-25 24 views
-1

我必须从数据库获取数据,但由于我没有发现任何错误,所以我的头部被破坏,但我不知道为什么它不起作用!通过ajax获取数据不起作用

的JavaScript

var editdata = document.getElementById('editdata'); 
editdata.onclick = function() { 
    $.ajax({ 
     url: "sendata.php", 
     data :{ length : length, age : age, }, 
     type : 'POST', 
     success: function(output_data){ 
      $('#mydata').html(output_data); 
     } 
    }); 
} 

PHP

if (isset($_POST['editdata'])) { 
    $sql4 = $db->setQuery(
     "SELECT * FROM people WHERE userid = " 
     . $userid2 . " AND inf_id = " . $_SESSION['name'] . " " 
    ); 
    $result4 = $sql4->loadAssocList() ; 
    $output_data = ""; 
    $output_data .= "<table width='600' border='1' >"; 
    foreach ($result4 as $row4) { 
     $output_data .= "<tr><td>".$row4['age']; 
     $output_data .= "</td><td>".$row4['length'] ; 
     $output_data .= "</td><td><input id ='".$row4['id'] 
      . "' type='button' value='Delete'/>"; 
     $output_data .= "</td></tr>" ; 
    } 
    $output_data .= "</table>" ; 
    echo $output_data ; 
} 
echo "failure"; 

,但如果我这样做,我想起来了一个failure消息:

success: function(msg){ 
    alert(msg); 
    $('#mydata').html(output_data); 
} 

我在做什么错?

+1

尝试取出年龄后的逗号:年龄, – Wasim

+0

完成但它不是这个问题 –

+2

另外,您正在检查$ _POST ['editdata'],但您没有从您的Ajax请求发送该变量,以便if语句失败了。 – Wasim

回答

1

您使用POST方法发送{ length : length, age : age }

这意味着只设置了$_POST['lenght']$_POST['age'],因此使得(isset($_POST['editdata']))返回false并且不执行if块。

您是不是要找:

if (isset($_POST['legth']) and isset($_POST['age'])) { 
    ... 
} 

您也可以注意到echo "failure;"每次执行。也许你的意思是:

if (isset($_POST['editdata'])) { 
    ... 
} else { 
    echo "failure"; 
} 

+0

我的意思是如果按钮设置为editdata。然后从数据库中获取数据,我有editdata按钮。所以我检查是否点击,然后获取数据 –

+0

我认为你的权利,但我应该如何发送editdata? –

+0

这是我的按钮'' –

相关问题