2017-09-29 3 views
0

J'ai la fonction suivante qui envoie un message aux utilisateurs sélectionnésPHP concaténer à la variable

function send_msg($user_id, $title, $message){ 
$args = array('recipients' => $user_id, 'sender_id' => bp_loggedin_user_id(), 'subject' => $title, 'content' => $message); 
$thread_id = messages_new_message1($args); 
messages_delete_thread($thread_id,bp_loggedin_user_id()); 
} 

Ceci est invoqué par le code suivant qui affiche la forme

// Get data from form 
    $body_input=isset($_POST['body_input'])?$_POST['body_input']:''; 
    $subject_input=isset($_POST['subject_input'])?$_POST['subject_input']:''; 

// Loop sending a message for each recipient 
foreach(array_column($user_ids, 'user_id') as $user_N) { 
    send_msg($user_N, $body_input, $subject_input);  
} 

Je veux modifier le sujet/titre et le corps du message avant send_msg

J'ai essayé

$args = array('recipients' => $user_id, 'sender_id' => bp_loggedin_user_id(), 'subject' => $title.'some text', 'content' => $message); 

qui fonctionne, mais lorsque je tente

$args = array('recipients' => $user_id, 'sender_id' => bp_loggedin_user_id(), 'subject' => $title.'some text', 'content' => $message.'some text'); 

Il envoie le message deux fois, l'une avec title et body et une autre avec title.what_I_append et body.what_I_append

J'ai aussi essayé de cette façon, mais cela ne postez pas

$body_input=isset($_POST['body_input'])?$_POST['body_input']:''.'some text to append'; 

Comment concaténer correctement les variables utilisées pour le sujet et le corps?

+0

Où appelez send_msg() vous? Juste avant d'appeler, ajoutez vos données à $ subject, $ message. Passez ensuite les valeurs déjà ajoutées. – JParkinson1991

+0

@ JParkinson1991 Serait-ce comme '$ body_input = isset ($ _ POST ['body_input'])? $ _ POST ['body_input']: '';' alors '$ body_input = $ body_input.'some text''? – redditor

+0

@ JParkinson1991 En outre, un autre a répondu alors supprimé ''content' =>" {$ message} du texte "' qui envoie un message mais REMPLACE l'entrée du message par 'du texte' – redditor

Répondre

2

Une réponse rapide à suivre mes commentaires:

Je recommande send_msg() de se concentrer uniquement sur l'envoi du message.

Par conséquent ajouter à l'objet et au corps avant d'envoyer ces valeurs à la fonction send_msg().

<?php 

//Personally i wouldnt append to an empty value, your choice. 
$subject = isset($_POST['subject_input']) 
    ? $_POST['subject_input'].' appended text' 
    : '' 
$body= isset($_POST['body_input']) 
    ? $_POST['body_input'].' appended text' 
    : ''; 

send_msg($user_id, $title, $body); 

Hope this helps

+0

Comment pourrais-je faire quelque chose comme '... POST ['subject_input']. $ AppendText', l'idée étant d'avoir $ appendText = 'quelquechose'; 'juste au-dessus de - edit: ça marche super, ce n'était pas quand j'ai commenté comme je n'avais pas ' redditor

+1

Faites comme vous l'avez fait. Stocker ce qu'il faut ajouter dans une variable et ajouter une variable :) – JParkinson1991