在php中创建组合框时Onchange事件的语法

时间:2013-06-25 09:23:06

标签: php javascript html

<?php   
 echo "*Select Category<select name='category' id='category' onChange='ajax('fill.php', '', 'populate', 'post', '1')'><option value=''>--Please Select--</option><option value='1' >1</option><option value='2'>2</option></select>";
?>

ajax函数中的参数应该代替代码(')。

3 个答案:

答案 0 :(得分:2)

使用反斜杠报价

onChange='ajax(\"fill.php\", \"\", \"populate\", \"post\", \"1\")'

HTML属性应该在引号中,代之以交换'"

echo '*Select Category<select name="category" id="category" onChange="ajax(\'fill.php\', \'\', \'populate\', \'post\', \'1\')"><option value="">--Please Select--</option><option value="1" >1</option><option value="2">2</option></select>';

要提高可读性,请使用HEREDOC语法

echo <<<STR
  *Select Category
  <select name="category" id="category" onChange="ajax('fill.php', '', 'populate', 'post', '1')">
    <option value="">--Please Select--</option>
    <option value="1">1</option>
    <option value="2">2</option>
  </select>
STR;

答案 1 :(得分:1)

这将有效:

onChange=\"ajax('fill.php', '', 'populate', 'post', '1')\"

但是通过jquery

分配更改事件会更好更清晰
$('#category').change(function(){
    ajax('fill.php', '', 'populate', 'post', '1');
});

如果你不想使用jquery,你应该把你的javascript放在一个单独的函数中,只在你的onchange中调用:

onChange='callAjax()'

[...]

function callAjax() {
    ajax('fill.php', '', 'populate', 'post', '1');
}

请在上下文When should I use Inline vs. External Javascript?

中阅读此主题

答案 2 :(得分:1)

只需在双倍和双倍之间交替使用引号。单身&amp;在需要的地方逃离:

echo "*Select Category <select name='category' id='category' onChange=\"ajax('fill.php', '', 'populate', 'post', '1')\"><option value=''>--Please Select--</option><option value='1' >1</option><option value='2'>2</option></select>";

具体来说,改变:

onChange='...'

onChange=\"...\"