我正在尝试检索用户输入的提交数据的ID,然后使用jQuery / Ajax显示它。想法是显示数据的链接或“引用”页面。 “您的报价已提交!点击[链接]转到页面”链接看起来像这样:http://example.com/quote-123。 123是报价的ID。
这是我用来使用ajax和jQuery提交数据的部分。
$(document).delegate("'#submit-quote'", "submit", function(){
var quoteVal = $(this).find('[name="quote"]').val();
$.post("add.php", $(this).serialize(), function(data) {
var like = $('.quote-wrap span iframe');
$('.inner').prepend('<div class="quote-wrap group">' + like + '<div class="quote"><p>' + quoteVal+ '</p></div></div>');
// console.log("success");
var id = parseInt(data);
alert(id);
});
return false;
});
alert(id)返回NaN。
add.php:
require('inc/connect.php');
$quote = $_POST['quote'];
$quotes = mysql_real_escape_string($quote);
//echo $quotes . "Added to database";
mysql_query("INSERT INTO entries (quote) VALUES('$quotes')")
or die(mysql_error());
echo mysql_insert_id($quote);
我是JavaScript和PHP的新手,我真的很想学习和理解它。如何从提交的报价中获取ID?
答案 0 :(得分:3)
你的贴身代码中的错误说:
Warning: mysql_insert_id() expects parameter 1 to be resource, string given in C:\wamp\www\virallikesproject\add.php on line 12
它所期望的资源是mysql_connect()返回的链接标识符,我在您的代码中没有看到。无论如何,mysql_insert_id()行为如果你不传递资源就是使用最后一个打开的行为。
更改此行:
mysql_insert_id($quote);
到此:
mysql_insert_id();
应该处理那个错误。就整体问题而言,我很担心,因为我根本看不到你在哪里连接数据库。
答案 1 :(得分:0)
根据http://us3.php.net/mysql_insert_id,mysql_insert_id不带参数,也不带链接标识符。你应该改为echo mysql_insert_id();
。