在php中调用javascript函数并传递php变量?

时间:2013-04-20 06:52:44

标签: php javascript

假设我在php脚本上有3个变量,id,name,number,$ name,$ number,$ id

在PHP上,我创建了一个按钮

    print "<td><form><input type='button' name='edit' id='edit' onclick=ed($name, $number, $id) value='Edit' /></td>";

我希望将这3个变量发送到我的javascript。

如果我使用

,函数调用似乎工作正常
onclick=ed(this.id)

并修改函数头,这会传递字符串“edit”,但这并不是很有用。

javascript中的函数头是

function ed(name, number, id) {
//stuff here
}

无论使用这个代码值得使用,我都会在html文件的第2行的html上出现错误,这是关于意外的错误。

编辑:我应该澄清我说代码给了我错误,所以有人不只是说“好用这个!”当我已经预料到它不起作用时。

使用此:

<input type='button' id='$id' onclick=ed(this.id) value='Edit' />

允许我将$ id中的值发送到javascript函数,因为它保存在id字段中。这些方面的东西是我所希望的,但我无法找到是否有任何方法可以做到这一点。编辑:3个变量。

再次编辑:

使用:

<form><input type='button' name='$name' id='$id' title='$number' onclick='ed(this.name,this.title,this.id)' value='Edit' /></form>

将所有3个php变量的值发送到javascript函数。

它不漂亮,但它有效。

3 个答案:

答案 0 :(得分:1)

对于自定义属性,定义data-attributes,例如如Mozilla Dev所示:

<div id="user" data-id="1234567890" data-user="johndoe" data-date-of-birth>John Doe
</div>

var el = document.querySelector('#user');

// el.id == 'user'
// el.dataset.id === '1234567890'
// el.dataset.user === 'johndoe'
// el.dataset.dateOfBirth === ''

el.dataset.dateOfBirth = '1960-10-03'; // set the DOB.

// 'someDataAttr' in el.dataset === false

el.dataset.someDataAttr = 'mydata';
// 'someDataAttr' in el.dataset === true

在您的情况下,您似乎只需要data-number,因为其他两个是DOM元素的标准属性。

答案 1 :(得分:0)

我认为问题出在你的报价上,所以试试这个

    print '<td><form><input type="button" name="edit" id="edit" onclick=ed('.$name.','.$number.','.$id.') value="Edit" /></td>'

答案 2 :(得分:0)

您只能发送3个这样的值: -

onclick="javascript:func_name('<?php echo $var1 . "," . $var2 . "," . $var3;?>');

在js函数中只接受一个参数,然后使用“,”作为分隔符拆分3个值。