簡體   English   中英

php while循環在javascript函數中

[英]php while loop in javascript function

我有一些代碼可以讓我使用javascript將行添加到結果表中。 我基本上是在表中設置第一行,然后有一個添加行按鈕來復制該行。 當我嘗試添加使用php提取結果的下拉字段時,此方法可以很好地接受。 當我單擊按鈕時,該行仍會添加,但是php下拉部分不會顯示。

    function addOpenResult() {
  var openResults = document.getElementById("openResults");
  var openResultsRow = openResults.insertRow(openResults.rows.length-1);
  var col1html = "<td width='50'><input size='5' width='100' type='text' name='rsRD1' /></td>";
  var col2html = "<td width='50'><input size='5' width='100' type='text' name='rsRD2' /></td>";
  var col3html = "<td width='50'><input size='5' width='100' type='text' name='rsRD3' /></td>";
  var col4html = "<td width='50'><input size='5' width='100' type='text' name='rsRD4' /></td>";
  var col5html = "<td width='100'><input size='10' width='100' type='text' name='rsScore' /></td>";
  var col6html = "<td width='200'><select name='playerID'><option selected>---- Select Player ---</option>" . <?php while ($trpRow=mysql_fetch_array($trpResult)) {extract($trpRow); echo '<option value=$playerID>$lastName, $firstName</option>' ;}?> . "</select></td>";
  var col7html = "<td width='100'><input size='10' type='text' name='rsAmount' /></td>";
  var col8html = "<td width='100'><input size='10' type='text' name='rsOtherWinnings' /></td>";
  var col9html = "<td width='100'><input size='10' type='text' name='rsOtherValue' /><input type='hidden' name='catID' value='15'></td>";


  var col1 = openResultsRow.insertCell(0); col1.innerHTML=col1html;
  var col2 = openResultsRow.insertCell(1); col2.innerHTML=col2html;
  var col3 = openResultsRow.insertCell(2); col3.innerHTML=col3html;
  var col4 = openResultsRow.insertCell(3); col4.innerHTML=col4html;
  var col5 = openResultsRow.insertCell(4); col5.innerHTML=col5html;
  var col6 = openResultsRow.insertCell(5); col6.innerHTML=col6html;
  var col7 = openResultsRow.insertCell(6); col7.innerHTML=col7html;
  var col8 = openResultsRow.insertCell(7); col8.innerHTML=col8html;
  var col9 = openResultsRow.insertCell(8); col9.innerHTML=col9html;
  var col10 = openResultsRow.insertCell(9); col10.innerHTML=col10html;
}

一旦生成頁面,服務器端就會運行一次PHP代碼,然后將其發送到瀏覽器進行解釋。 如果您查看頁面的源代碼,則會看到生成的JavaScript中存在錯誤。 從這個角度看,似乎沒有引用您生成的JavaScript字符串。

var col6html = "<td width='200'><select name='playerID'><option selected>---- Select Player ---</option>" <?php while ($trpRow=mysql_fetch_array($trpResult)) {extract($trpRow); echo " + '<option value=$playerID>$lastName, $firstName</option>'" ;}?> + "</select></td>";

我還沒有測試過,但是應該可以做。 我將串聯運算符移到了生成的代碼中並添加了引號。

您正在使用PHP字符串concat運算符. 在Javascript字符串串聯操作中。 您應該使用Javascript concat運算子+

echo '<option value=$playerID>$lastName, $firstName</option>'也應該用雙引號引起來,因為您希望將其輸出為Javascript字符串

echo '"<option value=$playerID>$lastName, $firstName</option>"'

您錯誤地將JavaScript字符串與PHP內容連接在一起。 更改

var col6html = "<td width='200'><select name='playerID'><option selected>---- Select Player ---</option>" . <?php while ($trpRow=mysql_fetch_array($trpResult)) {extract($trpRow); echo '<option value=$playerID>$lastName, $firstName</option>' ;}?> . "</select></td>";

<?php
$options = "";
while ($trpRow=mysql_fetch_array($trpResult)) {
    extract($trpRow);
    $options .=  "<option value=\"$playerID\">$lastName, $firstName</option>" ;
}
?>
var col6html = "<td width='200'><select name='playerID'>"+ 
                  "<option selected>---- Select Player ---</option>" +
                  <?php echo json_encode($options) ?>  +
               "</select></td>";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM