Buat butang pautan salin dalam senarai dengan nilai unik - PHP dan JavaScript
P粉211273535
P粉211273535 2023-09-16 00:15:27
0
1
640

Saya sedang menulis pemalam WordPress saya sendiri, itulah sebabnya beberapa kod mungkin kelihatan agak pelik. Tetapi masalah saya ialah dengan PHP lama biasa.

Saya mencipta senarai pemain dan setiap pemain mempunyai URL unik. Saya mahu mempunyai butang "Salin Pautan" pada setiap baris/pemain. Tetapi saya nampaknya tidak boleh membuat ini berfungsi.

Saya tidak mahu mengemas kini tapak secara salinan, jadi saya rasa saya perlu menggunakan sesuatu seperti Ajax. Tetapi saya tidak mempunyai pengalaman.

Saya cuba menciptanya menggunakan JavaScript tetapi apabila saya memasukkan pautan (rentetan) ia terus mencetak ralat. Ia mencetak: "Token yang tidak dijangka ':'. Dijangka ')' untuk menamatkan senarai hujah

Saya telah menyediakan fail PHP saya seperti ini:

<?php
// Fetching the players //

foreach($players as $player) {
    $player_email = get_post_meta($player->ID, 'email')[0];
    $player_status = get_post_meta($player->ID, 'status')[0];
    $player_link = get_permalink($player->ID);
    
    if ($player_status == 'Not completed') { array_push($not_completed_players, 'true'); }
    $return_html .= '
    <li class="players-div">
      <div class="players-text-div"> 
        <p class="players-list-p players-name"> ' . $player->post_title . ' </p>
        <p class="players-list-p players-email"> ' . $player_email . ' </p>
      </div>

      <a class="players-list-p" href="' . $player_link . '"> /' . basename($player_link) . ' </a>
      <p class="players-list-p players-email"> ' . $player_status . ' </p>

      <button type="button" onClick="copyToClipboard(' . $player_link . ')" name="copied_link" value="' . $player_link . '"> Copy link </button>
    </li>';
 }

?>

<script>
  function copyToClipboard(playerLink) {
    navigator.clipboard.writeText( playerLink );
  }
</script>

P粉211273535
P粉211273535

membalas semua(1)
P粉439804514

Anda hendaklah menyertakan copyToClipboard 函数的参数括起来。此解决方案通过添加反斜杠 () 来转义 ' dengan petikan berganda atau tunggal:

copyToClipboard(\'' . $player_link . '\')

Pautan pemain anda mungkin mengandungi https: dan bertindih yang akan menyebabkan mesej ralat.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan