2014-09-28 50 views
0

我想通過一個字符串和一個整數到同一個函數,我有問題報價。我發現錯誤在echo $q->info部分,我必須在這段代碼上使用雙引號。JavaScript將字符串和整數從PHP傳遞到函數

有人可以幫我寫這個$q->info,但得到真正的價值不是$q->info

到目前爲止我的代碼是

<td><a href="javascript:add(<?php echo $q->info?>,<?php echo $q->id?>)">Edit</a></td> 

和js函數

function add(var,var2) 

有人可以幫助我?

+0

使用_JSON_作爲中介。它會爲你節省很多頭痛。 – 2014-09-28 17:39:48

回答

0

您需要引用字符串。

<td><a href="javascript:add('<?php echo $q->info?>',<?php echo $q->id?>)">Edit</a></td> 

此外,var是無效的變量/參數名稱(標識符)。

+0

你的屬性現在看起來像'HREF =「JavaScript的:添加(」'那是行不通的 – Quentin 2014-09-28 17:28:50

+0

接近,但不正確的,這是正確的代碼​​Edit 2014-09-28 17:29:12

+0

@Quentin你是正確的 – 2014-09-28 17:29:47

1

你有一個PHP變量。要將其轉換爲JavaScript文字的字符串表示形式,請使用json_encode。爲了安全地插入HTML屬性值,請使用htmlspecialchars

<td><a href="javascript:add(<?php echo htmlspecialchars(json_encode($q->info)); ?>,<?php echo htmlspecialchars(json_encode($q->id)); ?>)">Edit</a></td> 

這就是說,它會更好地編寫代碼遵循Progressive EnhancementUnobtrusive JavaScript原則。

<td> 
    <form action="edit" method="post"> 
     <input type="hidden" name="info" value="<?php echo htmlspecialchars($q->info); ?>"> 
     <input type="hidden" name="id" value="<?php echo htmlspecialchars($q->id); ?>"> 
     <input type="submit" value="edit"> 
    </form> 
</td> 

然後是這樣的:

document.querySelector('form').addEventListener("submit", function (evt) { 
    evt.preventDefault(); 
    add(this.elements.info.value, this.elements.id.value); 
}); 
相關問題