传递php变量onclick会出错

时间:2015-01-21 14:45:24

标签: javascript php onclick

请参阅以下脚本。当使用php变量($ var)时,Onclick的Add会出错,但它会使用一个数字 - 即如果index.php中的行:

echo '<button id="1" onclick="company_add(\''.$var.'\');">Add</button>';

更改为:

echo '<button id="1" onclick="company_add(',57776,');">Add</button>';

我错过了什么?

的index.php:

<html>
<head>
<script type ="text/javascript">
function company_add(company_name) {
$.post('company_add.php', {company_name:company_name}, function(data) {
   if (data == 'success'){
    alert("Cool");
   } else{
       alert(data);
   }
});
}
</script>
<script type="text/javascript" 
src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">      
</script>

<?php
include 'connect.php'; //Generic connect file
$var = 'Name';

echo '<button id="1" onclick="company_add(\''.$var.'\');">Add</button>  
<br/>';
?>
</body>
</html>

company_add.php:

<?php
include 'connect.php';

function company_exists($company_name) {
return (mysql_result(mysql_query("SELECT COUNT(`company_name`) FROM   
`company` WHERE `company_name` = $company_name"), 0) == 0 ) ? false :    
 true;
 }

function add_company($company_name){
mysql_query("INSERT INTO `company` (`id`, `company_name`) values ('', 
".$company_name.")");
}

$company_name = $_POST['company_name'];

if (company_exists($company_name) === true) {
echo 'Company already added';
} else {
add_company($company_name);
echo 'success';
}
?>

1 个答案:

答案 0 :(得分:0)

像这样使用那条线:

echo "<button id='1' onclick='company_add('" . $var . "');'>Add</button>";

如果你在$var的价值之前和之前已经有逗号,你应该修剪它。 所以像这样使用它:

$var = ltrim(",", $var);
$var = rtrim(", ", $var);
echo "<button id='1' onclick='company_add('" . $var . "');'>Add</button>";

对于您的信息,您甚至可以使用字符串而不是数字。

更新功能:

function company_exists($company_name) {
  $company_name = mysql_real_escape_string($company_name);
  $query = "SELECT * FROM company WHERE company_name = '{$company}'";
  $result = mysql_query($query);
  if(mysql_num_rows($result) > 0) {
    return true;
  }else{
    return false;
  }
}

function add_company($company_name){
  $company_name = mysql_real_escape_string($company_name);
  $query = "INSERT INTO company (id, company_name) VALUES ('', '{$company_name}')";
  return mysql_query($query);
}

如果您将id表的company字段用作AUTO_INCREMENT,则可以将ID字段保留为NAME&amp; INSERT语句中的VALUE。 与此add_company函数中的相似:

$query = "INSERT INTO company (company_name) VALUES ('{$company_name}')"