如何从输入字段

时间:2015-07-03 17:03:06

标签: javascript php jquery iframe

我的用户可以从reverbnation.com添加他的任何音频。因此,用户可以复制他的嵌入代码并将其粘贴到表单输入中。我希望我的表单只能输入两个单词。

例如: - reverbnation embad代码如:

<iframe class="widget_iframe" src="https://www.reverbnation.com/widget_code/html_widget/artist_4859830?widget_id=50&amp;posted_by=label_265034&pwc[design]=customized&pwc[background_color]=%23d4c79f&pwc[included_songs]=0&pwc[song_ids]=23591473&pwc[photo]=0%2C1&pwc[size]=undefined" width="100%" height="100%" frameborder="0" scrolling="no"></iframe>

因此,如果我的用户粘贴上面嵌入了表单输入字段中的代码, 我想从上面的文本中收集两个单词来保存我的sql数据库。

  1. 艺术家ID = 4859830(... artist_4859830?...)
  2. 歌曲ID = 23591473(...&amp; pwc [song_ids] = 23591473 ...)
  3. 请给我一个指导;如何从输入字段中收集上述2个id。

    我的sql数据库:id | userid |艺术家|歌曲

    我的表单页面:

    if(isset($_POST['submit'])){
        $code = mysqli_real_escape_string($dbh, $_POST['code']);
        $userid = mysqli_real_escape_string($dbh, $_POST['userid']);
    
        $artist = How to get artist id (4859830) from $code 
        $song = How to get song id (23591473) from $code
    
        $result = mysqli_query($dbh,"INSERT INTO user_aideo (id, userid, artist, song) values('', '$userid', '$artist', '$song')");
    }
    
    <form id="form" method="post" action="">
       <input type="text" class="form-control" name="code"/>
       <input type="hidden" name="userid" value="<? echo $session->userid; ?>"/>
       <input type="submit" name="submit" id="submit" value=" Submit "/>
    </form>
    

1 个答案:

答案 0 :(得分:2)

我认为这对regular expressions来说是一个很好的用例。

对于您的特定场景,您可以在一次执行中捕获这两个数字。您只需使用WITH query AS ( SELECT t1.categoryid AS lev1, t2.categoryid as lev2, t3.categoryid as lev3, t4.categoryid as lev4 FROM category AS t1 LEFT JOIN category AS t2 ON t2.parent = t1.categoryid LEFT JOIN category AS t3 ON t3.parent = t2.categoryid LEFT JOIN category AS t4 ON t4.parent = t3.categoryid WHERE t1.categoryid = 4149418031) SELECT lev1 AS category_value FROM query UNION SELECT lev2 AS category_value FROM query UNION SELECT lev3 AS category_value FROM query UNION SELECT lev4 AS category_value FROM query; 函数。

preg_match

这适用于您给定的代码示例。它会将艺术家编号设为if (preg_match("/(?:.*)artist_([0-9]*)\?(?:.*)song_ids]=([0-9]*)/i", $code, $matches)) { print 'artist: ' . $matches[1] . '<br />'; print 'song: ' . $matches[2]; } ,将歌曲编号设为$matches[1]

我很乐意直接在if语句中引用它们,因为正则表达式有两个捕获组,因此如果$matches[2]返回$matchespreg_match数组中总会有3个索引。如果在if语句之外直接调用true,则需要遍历preg_match数组以避免未定义的索引错误。