传递HTML嵌入PHP w/ innerHTML


passing HTML embedded PHP w/ innerHTML

我需要能够在单击按钮时向以下表单组添加额外的行。PHP语句根据数据库中的记录为选择输入返回一个动态选项列表。

  <h3>Check 1:</h3>
  <div class="row" id="check_1">
      <div class = "col-md-4 padding-top-10">
          <label for="checkJobName_1" class="control-label">Job/Client Name:</label>
          <select class="form-control" id="checkJobName_1" name="checkJobName_1">
              <option selected disabled>Choose a Client/Job</option>
              <?php echo $dynamicJobList; ?>
          </select>
      </div>
      <div class = "col-md-4 padding-top-10">
          <label for="checkNumber_1" class="control-label">Check #:</label>
          <input type="text" class="form-control" id="checkNumber_1" name="checkNumber_1" placeholder="Enter Check #"/>
      </div> 
      <div class = "col-md-4 padding-top-10">
          <label for="checkAmount_1" class="control-label">Check Amount:</label>
          <input type="text" class="form-control" id="checkAmount_1" name="checkAmount_1" placeholder="Enter $Amount of Check"/>
      </div>                    
 </div>

这是我写的javascript函数:

function addCheck()
{
            check_i++;
            var checkDiv = document.createElement('div');
            checkDiv.innerHTML = '<h3>Check '+check_i+':</h3><div class="row" id="check_'+check_i+'"><div class = "col-md-4 padding-top-10"><label for="checkJobName_'+check_i+'" class="control-label">Job/Client Name:</label><select class="form-control" id="checkJobName_'+check_i+'" name="checkJobName_'+check_i+'"><option selected disabled>Choose a Client/Job</option><?php echo $dynamicJobList; ?></select></div><div class = "col-md-4 padding-top-10"><label for="checkNumber_'+check_i+'" class="control-label">Check #:</label><input type="text" class="form-control" id="checkNumber_'+check_i+'" name="checkNumber_'+check_i+'" placeholder="Enter Check #"/></div><div class = "col-md-4 padding-top-10"><label for="checkAmount_'+check_i+'" class="control-label">Check Amount:</label><input type="text" class="form-control" id="checkAmount_'+check_i+'" name="checkAmount_'+check_i+'" placeholder="Enter $Amount of Check"/></div></div>';
            document.getElementById('checks').appendChild(checkDiv);        
    }

但是它不起作用,因为如果PHP语句嵌入在HTML中,我试图追加到"检查"表单组…你会怎么做?

Php是一个完整的服务器端语言,这意味着没有

你最好的选择是json_encode你的数组和发送它通过ajax调用,或在你的php顶部代码区域。

file1:

$array = array("data1" => array() ....);
echo json_encode($array);

你的html(使用jquery):

$.post("file1 uri" , function(data) {
    var json = JSON.parse(data);
    foreach (var x in json) alert("x: " + x + " json[x]" + json[x]);
});

PHP是一种服务器端语言,它向客户端发送数据并响应请求。

Javascript是一种客户端语言,它改变的是客户端所看到的内容,而不是服务器所知道的内容。

让它们一起工作的唯一方法是在jQuery中使用AJAX调用。