【问题标题】:Call Ajax function from PHP foreach with form使用表单从 PHP foreach 调用 Ajax 函数
【发布时间】:2014-03-13 11:20:10
【问题描述】:

我这里有个小问题。我想从 PHP foreach 循环中调用 Ajax 函数 这是我的代码:

阿贾克斯:

 function ajaxFunction(){
 var ajaxRequest;  // The variable that makes Ajax possible!

 try{
   // Opera 8.0+, Firefox, Safari
   ajaxRequest = new XMLHttpRequest();
 }catch (e){
   // Internet Explorer Browsers
   try{
      ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
   }catch (e) {
      try{
         ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
      }catch (e){
         // Something went wrong
         alert("Your browser broke!");
         return false;
      }
   }
 }
 // Create a function that will receive data 
 // sent from the server and will update
 // div section in the same page.
 ajaxRequest.onreadystatechange = function(){
   if(ajaxRequest.readyState == 4){
      var ajaxDisplay = document.getElementById('ajaxDiv');
      ajaxDisplay.innerHTML = ajaxRequest.responseText;
   }
 }
 // Now get the value from user and pass it to
 // server script.
 var bla = document.getElementById('bla').value;
 var queryString = "?bla=" + bla;
 ajaxRequest.open("GET", "ajax-example.php" + 
                              queryString, true);
 ajaxRequest.send(null); 
}

还有php代码:

foreach ($data AS $key => $value){
    <form name="myForm">
    <input type="text" id="bla" name="bla" value="<?php echo $value['bla']; ?>">
    <input type="button" onclick="ajaxFunction(<?php echo $value['id']; ?>)" value="Speichern">
    </form>
}

问题:当我单击 foreach 循环中生成的几个按钮时,只有 foreach 循环的第一个结果出现在输出中。我想我必须将 foreach 循环(来自数据库)中的单个 ID 提交到Ajax 函数,但我不知道该怎么做。

也许像这样调用函数?函数 ajaxFunction(id) ?!

【问题讨论】:

    标签: php ajax forms foreach


    【解决方案1】:

    在您的 PHP foreach 循环中,您为每个文本输入分配了相同的 ID。当您调用 getElementById() 时,它将始终返回 DOM 中具有该 ID 的第一个元素,并且变量“bla”将被分配该第一个元素的 value 属性。

    看起来您可能一直在尝试将 ID 传递到 onclick 属性中的 ajaxFunction 调用中,因此您可以执行以下操作:

    1) 在文本输入的 id 属性中放置相同的 echo 语句。

    &lt;input type="text" id="&lt;?php echo $value['id']; ?&gt;" name="bla" value="&lt;?php echo $value['bla']; ?&gt;"&gt;

    2) 将参数添加到 ajaxFunction 定义中。

    function ajaxFunction(requestedID){

    3) 并将该变量传递给 getElementById 调用。

    var bla = document.getElementById(requestedID).value;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 2011-05-08
      • 2011-01-17
      相关资源
      最近更新 更多