2011-03-29 40 views
0

我想用PHP變量在輸入域中編寫文本。這是當前的代碼,我有:用PHP變量將文本寫入輸入域

JS:

<script type="text/javascript"> 
function reply(form, inp){ 
    form.texta.value = "@" + inp; 
} 
</script> 

HTML:

<a href="#" onClick="reply(form1, <?php echo $poster; ?>);">Reply ^</a> 

<form id="form1" name="form1" method="post" action="index.php"><input type="texta" name="texta" /></form> 

此代碼但不把變量的文本輸入字段。對不起,我對JavaScript有點新鮮。

任何人都可以幫助我嗎?

+0

是否有您遇到任何錯誤? – 2011-03-29 09:48:54

+2

您必須在引號內附上$ poster變量才能被視爲文本! – nuc 2011-03-29 09:51:54

回答

1

使用我在代碼中給出的代碼,並且由於答案/評論我把單引號放在php中,現在它完美地工作。謝謝!

0
<a href="#" onClick="reply(form1, '<?php echo $poster; ?>');">Reply ^</a> 

編輯:你應該給Id文本框。

+0

仍然不適合我,文字不進入領域。 – 2011-03-29 09:53:21

+0

document.getElementById('texta')。value =「@」+ inp;在javascript – Gaurav 2011-03-29 09:54:33

+0

並給id文本框。 – Gaurav 2011-03-29 09:55:11

0

如果你想直接

<input type="texta" name="texta" value="<?=$poster?>" /> 

或者

use document.form.texta.value = value 

或類似這樣的

document.forms["form"]["texta"].value = value 

把任何一個內部

function reply(form, inp){ 

} 

<a href="#" onClick="reply(form1,"<?=$poster?>");">Reply ^</a> 
+0

不可能,該變量在輸入字段創建後的while循環內。 – 2011-03-29 09:50:02

0
<input type="text" name="texta" value="<?php echo $poster; ?>" /> 
+0

不可能,該變量在輸入字段創建後的while循環內。 – 2011-03-29 09:49:44

0

如果$poster是一個字符串,則必須將其括在單引號內是這樣的:

<a href="#" onClick="reply(form1, '<?php echo $poster; ?>');">Reply ^</a> 

您也可以使用雙引號,但這樣會破壞您用來包裹onClick屬性的雙引號。無論如何,這是不夠的。這樣考慮:

<a href="#" onClick="alert('<?php echo "Frankie 'The Bat' Niagara"; ?>');">Reply ^</a> 

這將輸出:

<a href="#" onClick="alert('Frankie 'The Bat' Niagara');">Reply ^</a> 

不可接受;字符串內的單引號會過早地終止字符串,導致JavaScript無效。你可以嘗試json_encode()功能,像這樣:

<a href="#" onClick='alert(<?php echo json_encode("Frankie 'The Bat' Niagara", JSON_HEX_QUOT|JSON_HEX_APOS); ?>);'>Reply ^</a> 

輸出:

<a href="#" onClick='alert("Frankie \u0027The Bat\u0027 Niagara");'>Reply ^</a> 
+0

不是必需的,變量不可能具有任何特殊字符。 – 2011-03-29 10:35:24

+0

這種情況只是將PHP代碼包裝在單引號(JavaScript字符串分隔符)內,它本身應該用雙引號(屬性值分隔符)包裝。 – 2011-03-29 10:40:07

+0

看到我的答案;) – 2011-03-29 13:40:03