2015-01-21 4 views
-2

아래 스크립트를 참조하십시오. 추가의 온 클릭 그러나 그것은 숫자와 함께 작동합니다, PHP는 변수 ($ var에)이 사용되는 오류를 제공 -의 index.php에서 선이있는 경우, 즉 :PHP 변수 onclick을 전달하면 오류가 발생합니다

:

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'; 
} 
?> 
+2

'우리가 가능성이 문자열 값을 다루는 것보다 더 많은 것입니다. 'mysql_query()'에'die or mysql_error())'를 추가하면 확인하지 않은 오류가 표시됩니다. –

+1

** [mysql_ * 함수 사용을 중단하십시오.] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). ** 더 이상 사용하지 않습니다. (공식적으로 권장되지 않음) (https://wiki.php.net/rfc/mysql_deprecation). ** 대신 [prepared statements] (http://en.wikipedia.org/wiki/Prepared_statement) **에 대해 알아보고 ** [PDO] (http://us1.php.net/pdo)를 사용하십시오. ** Podora에서 @StevieWonder 노래가 실제로 재생됩니다. –

+1

무엇이 오류입니까? –

답변

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); 
} 

AUTO_INCREMENT은 다음 INSERT 문에서 id 필드 NAME & VALUE을 남길 수 있습니다 당신이 그 company 테이블의 id 필드를 사용하는 경우. add_company 기능이 같은 : 당신은`$의 company_name`와` ".. $ COMPANY_NAME"따옴표를 놓치고

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

+0

* "그리고 귀하의 정보는 네가 숫자 대신 문자열을 사용할 수도 있습니다. "* - OP의 SQL 문에 따른 것은 아닙니다.OP : * "PHP 변수 ($ var)를 사용하면 Add의 Onclick이 오류를 발생 시키지만 숫자가"* * - 버튼이 아닌 SQL입니다. –

관련 문제