Как получить данные из базы данных в javascript на основе значения, переданного функции

В моем веб-приложении я хочу получить данные из базы данных на основе значения, которое передается функции. Я написал запрос следующим образом.

<script> 
 //Functions to open database and to create, insert data into tables

 getSelectedRow = function(val)
    {
        db.transaction(function(transaction) {
              transaction.executeSql('SELECT * FROM Employ where number = parseInt(val);',[], selectedRowValues, errorHandler);

        });
    };
    selectedRowValues = function(transaction,results)
    {
         for(var i = 0; i < results.rows.length; i++)
         {
             var row = results.rows.item(i);
             alert(row['number']);
             alert(row['name']);                 
         }
    };
</script>

В теге body,

<body>
   ---
     <a href = "#" onClick = "javascript:getSelectedRow('1')>getValues</a>

У меня возникла проблема при получении данных из базы данных, т. Е. По запросу SELECT. Он не принимает значение parseInt (val), если я задаю условие как «имя = 1». он просто принимает условие и дает результат, но не принимает name = parseInt (val) '. и выдает ошибку, поскольку «такой столбец отсутствует: val code: 1»; Пожалуйста, скажите мне, как передать значение в "val". Заранее спасибо..

 Shiham14 июн. 2012 г., 08:48
[попробуйте этот ответ] (stackoverflow.com/questions/5610333/…)

Ответы на вопрос(3)

Попробуйте следующее:

<script> 
 //Functions to open database and to create, insert data into tables

 getSelectedRow = function(val)
    {
        db.transaction(function(transaction) {
              transaction.executeSql('SELECT * FROM Employ where number = ?;',[parseInt(val)], selectedRowValues, errorHandler);

        });
    };
    selectedRowValues = function(transaction,results)
    {
         for(var i = 0; i < results.rows.length; i++)
         {
             var row = results.rows.item(i);
             alert(row['number']);
             alert(row['name']);                 
         }
    };
</script>

У вас нет доступа к именам переменных JavaScript в SQL, вы должны передать эти значения в базу данных.

Ошибка приходит, поскольку ваш запрос формируется как

SELECT * FROM Employ where number = parseInt(val);

Я не знаю, какую БД вы используете, но ни одна БД не пойметparseInt.

Что вы можете сделать, это использовать переменную, скажем, temp и сохранить значениеparseInt(val) во временной переменной и сделать запрос как

SELECT * FROM Employ where number = temp;
Решение Вопроса
'SELECT * FROM Employ where number = ' + parseInt(val, 10) + ';'

Например, еслиval является"10" тогда это закончится построением строки:

"SELECT * FROM Employ where number = 10;"
 user2514 июн. 2012 г., 08:53
Большое спасибо Esailija, он работает, но я пишу это как "SELECT * FROM Employ где number = & apos; + parseInt (val) + ";" и я не прохожу 10
 14 июн. 2012 г., 08:53
@ user25 the10 в качестве второго аргумента указывает базу дляparseInt, Например,parseInt("09", 8) === 0, ноparseInt("09", 10) === 9
 user2514 июн. 2012 г., 08:56
Теперь я понял

Ваш ответ на вопрос