簡體   English   中英

如何傳遞php include調用作為javascript函數的變量?

[英]How can I pass a php include call as a variable for javascript function?

我有一個頁面,該頁面使用javascript innerhtml替換元素的內容作為偽靜態頁面。

以下代碼來自該元素的當前內容:

<?php
$con = mysql_connect('***********', '******', '**********');
mysql_select_db(dbbmdmi);

if ($con) {
    $sql = "SELECT TeamID, Captain, CountryID, ArrDate, DepDate FROM Teams";
    $result = mysql_query($sql) or die(mysql_error());

    $link = "<a id='" . $row["TeamID"] . "' onClick='SetTeamID();ReplaceContentInContainer('content','replace_target6')'>Edit</a>";

    if ($result) {
        // output data of each row
        while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
            echo "Captain: " . $row["Captain"]. "<a id='" . $row["TeamID"] . "' onClick=\"ReplaceContentInContainer2('content','<?php include 'scripts/editteam.php?TeamID=" . $row["TeamID"] . "'>')\">Edit</a>;" . "</br>Country: " . $row["CountryID"]. "</br>Dates: " . $row["ArrDate"]. " - ". $row["DepDate"]. "<br>";
        }
?>

onClick=\\"ReplaceContentInContainer2('content','<?php include 'scripts/editteam.php?TeamID=" . $row["TeamID"] . "'>')我試圖通過php include作為原始“容器”頁面中以下函數的“源”參數:

<script type="text/javascript">
    function ReplaceContentInContainer2(target,source) {
        document.getElementById(target).innerHTML = source;
    }
</script>

單擊鏈接時,我不斷收到此錯誤:

team.php:1SyntaxError:意外的標識符“腳本”。 期望')'結束參數列表。

基本上,我試圖將$row_["TeamID"] to the next page in the address so that I can call with a $ _GET`函數進行調用。

有什么建議么?

更新:

在javascript函數調用中轉義單引號后,該元素的內容將按原樣替換,除了php include在新內容中以html注釋呈現,而不是作為php運行。

onClick=\\"ReplaceContentInContainer2('content','<?php include \\'scripts/editteam.php?TeamID=" . $row["TeamID"] . "\\'?>')\\"轉義的單引號

呈現的html: <!--?php include 'scripts/editteam.php?TeamID=Kellog'?-->

那是一個非常有趣的想法。 您將要遇到的問題是,PHP僅會呈現您的<?php include... ?>的字符串,因為PHP只會在最初處理它,然后再將其處理。 這可能是您想要做的。

<!-- front-end.html-->
<script type="text/javascript">
function ReplaceContentInContainer2(target,source) {
    document.getElementById(target).innerHTML = source;
}
function ajaxForHtml(url, callback) {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
      callback(xhttp.responseText); 
    }
  };
  xhttp.open("GET", "ajax_info.txt", true);
  xhttp.send();
}
function clickAction(id) {
  ajaxForHtml('scripts/editteam.php?TeamID=' + id, function(data) {
    ReplaceContentInContainer2('content', data);
  });
}
</script>
<?php
$con = mysql_connect('***********', '******', '**********');
mysql_select_db(dbbmdmi);

if ($con) {
    $sql = "SELECT TeamID, Captain, CountryID, ArrDate, DepDate FROM Teams";
    $result = mysql_query($sql) or die(mysql_error());

    $link = "<a id='" . $row["TeamID"] . "' onClick='SetTeamID();ReplaceContentInContainer('content','replace_target6')'>Edit</a>";

    if ($result) {
        // output data of each row
        while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
          echo sprintf('Captain: %s <a id="%d" onclick="clickAction(%d);">Edit</a>;</br>Country: %d</br>Dates: %s - %s </br>',
                        $row['Captain'], $row['TeamId'], $row['TeamId'], $row["CountryID"], $row["ArrDate"], $row["DepDate"]
               );
         }

暫無
暫無

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

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