1

我的问题如下:我使用 div 设计了一个网页。通过链接上的 Onlick,我用 PHP 文件(MySQL 查询)的输出填充了一个 div。这个 PHP 站点由 JavaScript 中的 XMLHttpRequest-Function 调用。在 PHP 站点上,我想使用 jQuery 禁用/启用按钮和文本区域。这些 jQuery 请求不起作用。如果我直接在浏览器中调用 PHP 站点,一切都会正常工作。我的错在哪里?

JavaScript 调用 PHP 站点并填充 div:

function selected_...(nr)
{
  if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  }
  else
  {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function()
  {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
      document.getElementById("right_details_content").innerHTML=xmlhttp.responseText;
    }
  }
  xmlhttp.open("GET","/.../ajax_querys.php?id=selected_...&nr="+nr,true);
  xmlhttp.send();
}

PHP站点的输出:

if($row['anwendung'] == "...") {
            echo "<span>name:</span><input type=\"text\" id=\"name\" name=\"servername\" value=\"" . $row['rechner'] . "\" disabled><br><br>";
            echo "<span>wort:</span><input type=\"text\" id=\"word\" name=\"password\" value=\"" . $word . "\" disabled><br><br>";
            echo "<span>Bemerkung:</span><textarea id=\"right_details_content_textarea\" rows=\"5\" name=\"bemerkung\" disabled>" . $row['bemerkung'] . "</textarea><br><br><br><br><br>";
            echo "<input type=\"hidden\" name=\"nr\" value=\"" . $row['nr'] . "\"><br>";
            echo "<div class=\"left\"><input type=\"button\" id=\"edit\" name=\"edit\" value=\"bearbeiten\"><input type=\"button\" id=\"cancel\" name=\"cancel\" value=\"abbrechen\" style=\"display: none;\"></div>";
            echo "<div class=\"center\"><input type=\"button\" id=\"save\" name=\"save\" value=\"speichern\" disabled></div>";
            echo "<div class=\"right\"><input type=\"button\" id=\"delete\" name=\"delete\" value=\"l&ouml;schen\"></div>";

Ajax 部分:

$(document).ready(function () {
// alert('Fertig');
    $("#edit").click(function(){
// alert('Click');
        if($("#save").attr("disabled")) {
            $("#name").removeAttr("disabled");
            $("#word").removeAttr("disabled");
            $("#right_details_content_textarea").removeAttr("disabled");
            document.getElementById("edit").style.display = "none";
            document.getElementById("cancel").style.display = "inline";
            $("#save").removeAttr("disabled");
        }
    });
});
4

1 回答 1

0

多么大规模的问题。好吧,我认为既然您使用的是 jquery,最好使用 $.ajax 来请求服务器。

像这样的东西:

    $.ajax({
        url: "/.../ajax_querys.php?id=selected_...&nr=",
        type: "GET",
        processData: false,
        contentType: false,
    }).done(function(res){
      console.log(res);
      $("#right_details_content").html(res);
    }).fail(function(err){
       console.log(err);
    });                 
    });

检查这一点,如果仍然不起作用,请检查请求 URL 和代码限制。祝你好运。

于 2013-11-15T08:43:20.277 回答