Php $\发布具有相同id的多个输入,这些输入通过单击jQuery添加。
我的网站搜索Spotify库并返回结果列表。用户可以单击其中一个结果并将其添加到播放列表中,播放列表将作为表单提交的一部分发布。下面的代码将单击的歌曲添加到.selected列表容器中,然后使用Spotify歌曲href的值将隐藏的输入添加到DOM中Php $\发布具有相同id的多个输入,这些输入通过单击jQuery添加。,php,javascript,jquery,mysql,Php,Javascript,Jquery,Mysql,我的网站搜索Spotify库并返回结果列表。用户可以单击其中一个结果并将其添加到播放列表中,播放列表将作为表单提交的一部分发布。下面的代码将单击的歌曲添加到.selected列表容器中,然后使用Spotify歌曲href的值将隐藏的输入添加到DOM中 $('.spotify-result').click(function() { var $input = $('<input type="hidden" id="track_href" class="track" value=""
$('.spotify-result').click(function() {
var $input = $('<input type="hidden" id="track_href" class="track" value="" name="track_href" />');
$(this).clone().appendTo($('.selected-list'));
$('.submit-spotify').before($input);
$input.val($('.track-href', this).text());
});
$('.spotify result')。单击(函数(){
变量$input=$('');
$(this.clone().appendTo($('.selected list'));
$('.submit spotify')。之前($input);
$input.val($('.track href',this.text());
});
我在这里遇到的问题是,每个输入都被赋予了一个“track_href”的id,而正是这个id被发送到了$\u POST变量中。下面的PHP显示了我如何将其添加到表中
$song_query = "INSERT INTO songs (playlist_id, href) VALUES ('$playlist_id', '$href')";
if (mysql_query($song_query)) {
$message = "<p>Congratulations, your Journix has been added.</p>";
} else {
$message = ("Insert failed. " . mysql_error() . "<br/>" . $song_query);
}
$song\u query=“插入歌曲(playlist\u id,href)值(“$playlist\u id”,“$href”)”;
if(mysql_查询($song_查询)){
$message=“祝贺您,您的日志已添加。”;
}否则{
$message=(“插入失败。”.mysql\u error()。“
。”$song\u查询);
}
此时发生的只是第一首歌被添加到表中。我想我需要某种循环来循环每个输入,但我确信用相同的id发布每个输入不是一种方法
我知道mysql函数正在贬值,但这是一个大学项目,需要我使用mysql。有两个问题 首先,html ID必须是唯一的。除非您使用jquery获取这些ID,否则这不会真正影响您,但您仍然应该更改它。你真的需要身份证吗 其次,具有相同名称的输入将相互覆盖。为了保存这一切,我将它设为一个数组
name="track_href[]"
在这之后,您可以循环浏览$\u POST['track\u href']并进行插入。有两个问题 首先,html ID必须是唯一的。除非您使用jquery获取这些ID,否则这不会真正影响您,但您仍然应该更改它。你真的需要身份证吗 其次,具有相同名称的输入将相互覆盖。为了保存这一切,我将它设为一个数组
name="track_href[]"
在那之后,你可以循环通过$\u POST['track\u href']并进行插入。是输入的名称,而不是id,它是$\u POST数组中的键。是输入的名称,而不是id,它是$\u POST数组中的键。不是
输入
字段的id,而是名称
属性。您需要将它们设置为唯一的或数组,以便在后端PHP脚本中轻松访问
在前端
使用
它不是input
字段的id
,而是name
attirbute。您需要将它们设置为唯一的或数组,以便在后端PHP脚本中轻松访问
在前端
使用
Ejay我刚刚使用了你的代码,但有一些错误。。。警告:为foreach()提供的参数无效注意:未定义变量:tmp警告:内爆()[函数.内爆]:传递的参数无效由于您从未发布初始化代码$href
,因此假定您有信心将其设置正确,即$href=$\u POST['track\u href']
Ejay我刚用了你的代码,但有几个错误。。。警告:为foreach()提供的参数无效注意:未定义变量:tmp警告:内爆()[函数.内爆]:传递的参数无效由于您从未发布初始化代码$href
,因此假定您有信心将其设置正确,即$href=$\u POST['track\u href']
,非常感谢!非常感谢!
var $input = $('<input type="hidden" id="track_href" class="track" value="" name="track_href" />');
//$href is an array now
foreach($href as $v){
$tmp[] = "('$playlist_id', '".mysql_real_escape_string($v)."')";
}
$song_query = "INSERT INTO songs (playlist_id, href) VALUES ".implode(',', $tmp);