Пожалуйста, смотрите сценарии ниже. Нажатие Add добавляет ошибку при использовании переменной php ($ var), однако она будет работать с числом — то есть, если строка в 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';
}
?>
Используйте эту строку так:
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>";
И для вашей информации да, вы можете даже использовать String вместо Number тоже.
И ОБНОВИТЬ функции:
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
тогда вы можете оставить поле идентификатора ИМЯ & ЗНАЧЕНИЕ В ЗАЯВЛЕНИИ.
Как это в add_company
Функция:
$query = "INSERT INTO company (company_name) VALUES ('{$company_name}')"
Других решений пока нет …