我有一个链接,需要将div'bnkcontent'的名称传递给AJAX函数editcustomer()。我从下面的代码行中得到错误。
echo'<a href="#" name="edit" id="edit" onclick="javascript:editcustomer('bnkcontent');">'.'edit details'.'</a>';
是它的调用函数:
function editcustomer(SpanName)
{
var address = document.getElementById('address');
var town = document.getElementById('town');
var postcode = document.getElementById('postcode');
var telephone = document.getElementById('telephone');
var email = document.getElementById('email');
var opassword = document.getElementById('opassword');
//alert(opassword.value);
var password = document.getElementById('password');
var cpassword = document.getElementById('cpassword');
var memword = document.getElementById('memword');
var cmemword = document.getElementById('cmemword');
var curDateTime = new Date(); //For IE
var poststr = "address=" + address.value + "&town=" +town.value + "&postcode=" +postcode.value + "&telephone=" +telephone.value + "&email=" +email.value + "&opassword=" +opassword.value + "&password=" +password.value + "&cpassword=" +cpassword.value + "&memword=" +memword.value + "&cmemword=" +cmemword.value;
alert(poststr);
var SpanName = SpanName;
makePOSTRequest('test.php', poststr, SpanName);
}
答案 0 :(得分:2)
这是PHP,而不是Javascript。将其更改为:
echo'**<a href="#" name="edit" id="edit" onclick="javascript:editcustomer(\'bnkcontent\');">';**
请注意,我在\
中的引号之前和之后放置了editcostomer('bnkcontent')
。它会破坏回应它的引号。
答案 1 :(得分:1)
正如您在突出显示的代码中看到的那样,您忘记了转义字符串中的'
:
echo'<a href="#" name="edit" id="edit" onclick="javascript:editcustomer(\'bnkcontent\');">';
而不是''
,您必须'
到\'
,因为只有'
会告诉解析器字符串在这里结束。
答案 2 :(得分:0)
您有嵌入式引号需要转义。使用备用引号和转义:
echo "**<a href=\"#\" name=\"edit\" id=\"edit\" onclick=\"javascript:editcustomer('bnkcontent');\">";**
^--switch to double quotes and do lots of escaping
或
echo '**<a href="#" name="edit" id="edit" onclick="javascript:editcustomer(\'bnkcontent\');">';**
^^--escape them
由于您在输入的字符串中有两种类型的引号,因此请使用需要最少转义的引号样式,这将是单引号。否则你的代码会因为“倾斜牙签综合症”而变得非常难看。